Simon Willison on no-build wedev:
If you've found web development frustrating over the past 5-10 years, here's something that has worked worked great for me: give yourself permission to avoid any form of frontend build system (so no npm / React / TypeScript / JSX / Babel / Vite / Tailwind etc) and code in HTML and JavaScript like it's 2009.
This blog has a "backend" build process to produce the static HTML. But, the frontend is pretty much build-free.
Web development with "vanilla" JavaScript has gotten pretty good in the last decade, thanks to Modules, dynamic import()
, Custom Elements, and a pile of other relatively recent APIs.
The easy path at work these days tends to be Next.js, but I kind of hate it. All my side projects start with touch index.{html,js,css}
. I roll on from there with maybe a live-reload HTTP server pointed at the directory (e.g. npx reload src
).
That said, I have started playing with carefully re-introducing some build tooling for a few side projects - but, only for external dependencies. I've tinkered a bit with using esbuild to compose bundles as JS modules importable by the rest of my unbundled modules.
The nice thing about this is that I can treat those external dependencies as standalone utility modules without infecting the rest of my project with build machinery. I can even just check in a copy of the built asset to keep the project stable and usable, years later.