javascript

  • Node 24, and a permission model I still did not enable

    A runtime permission model re-evaluated a year after the first look, with the same conclusion for the same reason. Re-running an evaluation and reaching the same conclusion is…

  • The stylesheet that finally got a second maintainer

    2,100 lines that one person could change, and the year spent fixing that. Every stylesheet change routed through one person for four years.

  • Vite 7, and a config that stayed one line

    A major version upgrade with no configuration change, on a build that had already been reduced to a proxy declaration. A configuration that has shrunk to one line…

  • A shared lint config, and the rule that was on in three of four repositories

    Four repositories with four nearly identical lint configs, and eleven rules where they disagreed. Printing the resolved configuration rather than diffing the source files is the technique —…

  • An Interactivity API block, two years on

    A carousel converted from a bespoke script in 2024, revisited to see whether the conversion held. The runtime being loaded by somebody else’s plugin means the shared cost…

  • Publishing a shared lint config for a team

    turkerdev/kbox-eslint-rules, and four repositories with four nearly identical configs that disagreed on eleven rules.

  • Import maps, and a page with no bundler

    Bare module specifiers resolved by the browser, which removes the last reason a small page needs a bundler. The import map is generated by the same script that…

  • Twelve lines of build script and no dependencies

    A site with four modules, and a build that is a shell script calling one binary. The metafile is what makes the hashed filename usable — something has…

  • A build with no bundler

    A site with 18 KB of JavaScript and a build pipeline sized for something larger. What a bundler provides, listed, and which of it is needed.

  • Vite 7, and a config that shrank

    A major version in June, and a configuration file that lost four options because they became defaults. A configuration file that shrinks on a major upgrade means the…