Recent submissions

Comment · 7 months ago
Ah yes, one step outside of New York City, and I'm immediately in the boondocks.
Comment · 1 year ago
Assuming one has access to a credit card and is financially literate, I agree that using BNPL is a hard sell (never having used it myself). But there is a large population--the unbanked--that lacks access to credit cards. For that population, the choice is not between credit card and BNPL, but BNPL and cash.

I found the article's description of how BNPL structurally differs from credit cards interesting, as it is a reasonable explanation for how BNPL can serve the unbanked and still have functioning credit risk models:

> Even with adverse selection for BNPL, the underwriting is for each transaction, not for all monthly spending like that in credit cards; so if a consumer misses a payment, the BNPL provider can stop lending immediately, as opposed to the credit card company which has to underwrite the person’s full ability and willingness to repay their debts. This tech-enabled granularity allows for legibility and hence greater precision and predictability.

Comment · 2 years ago
If you have a lot of files, the initial (dev server) page load times increases linearly with the number of files you have.

With a slow bundler, that tradeoff made sense, but with a fast bundler, it is suboptimal.

Also, typically the application is split into multiple smaller bundles, so only a slice of the application is rebundled on change.

Comment · 2 years ago
Next.js et al. provides a set of opinionated packages designed to enable a specific paradigm. For Next.js, that's server-side rendering. For Remix, that's progressive enhancement.

If you are happy with client-side rendering and do not desire React on the server, there is not a strong reason to use Next.js; it introduces complexity and churn.

Comment · 2 years ago
Note that while Vite transpiles with esbuild, it bundles with Rollup, which is single-threaded JS.

Vite also uses esbuild to prebundle dependencies for the dev server, but this is separate from production builds.

Comment · 2 years ago
Comment · 2 years ago
Since tree-shaking is a common term across frontend build tooling documentation, I adopted it as well.

Dead code elimination in its traditional form also runs during code minification, which is a separate build step from bundler tree shaking. Having separate terms avoids ambiguity.

Comment · 2 years ago
Thanks for the feedback!

I struggled with the ordering since each section is somewhat mutually dependent; this is arranged more like a thematic history than a chronological one.

Tree-shaking naturally fits under bundling, and I'm afraid that explaining it earlier will make tree-shaking's explanation itself contextless since without bundling there is nothing to tree shake.

I can hyperlink those references to the tree-shaking section tomorrow so that there is an action for the confused.

Comment · 2 years ago
Esbuild lacks the featureful plugin API that Webpack and Rollup have. It's pretty easy to avoid dependencies that require transpiler/bundler plugins and still have a great set of dependencies, but it's a deal breaker for many.
Comment · 2 years ago
I have recently written a broader exposition on frontend build tooling, perhaps it will be useful: https://sunsetglow.net/posts/frontend-build-systems.html.

The performance gains in the recent past have mostly been due to moving away from single-threaded JavaScript to multi-threaded compiled languages. This requires a complete rewrite, so existing tools rarely take this step. We see this optimization in Farm alongside "partial bundling," which strikes a performance-optimal balance between full bundling (Webpack) and no bundling (Vite) in development.

Vite abstracts over a preconfigured set of "lower-level" frontend build tools consisting of a mixture of older single-threaded JavaScript tools and newer multi-threaded compiled language tools. Vite can adopt the partial bundling of Farm, but dispensing with its remaining JavaScript tools is a major breaking update.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton