// the find
mattdesl/budo
:clapper: a dev server for rapid prototyping
budo is a browserify-based dev server from the mattdesl ecosystem: it incrementally rebuilds your bundle on save, holds requests until the rebuild finishes so you never get served a stale/empty bundle, and does LiveReload with CSS injection. It's aimed at creative-coding/canvas prototyping workflows, not at people building SPAs with a modern component framework.
The request-suspension trick during rebuilds is a genuinely good detail most watch-and-serve tools get wrong — no flashing broken bundles on refresh. In-browser error overlay for syntax/runtime errors during dev is nice UX for quick iteration. It's a thin, composable layer (watchify-middleware + simple-html-index under the hood) rather than a monolith, so the API surface is small and the CLI covers the common cases (SSL, CORS, pushstate, custom static dirs) without much config.
It's built entirely on browserify, which has been effectively dead for years — no ESM-native bundling, no tree-shaking, no native TypeScript, and the whole thing inherits browserify's CommonJS-only mental model. Last publish was 2022-08-30 with no commits since, so it predates and won't get fixes for anything in current Node/npm. There's no real HMR for JS (CSS gets injected, but JS changes just trigger a full page reload), which is a step behind what any Vite/esbuild-based setup gives you for free today. For anything beyond a single-entry prototype you'll outgrow it fast and have to migrate off browserify entirely anyway, so adopting it now is largely a dead end unless you're already deep in an old browserify codebase.