At some point in the last decade, shipping a web application started requiring a build step. Then a second one. Then a config file for the bundler, a config file for the CSS processor, a config file for the linter that runs before the bundler, and a CI definition that orchestrates all of them in the right order. Every one of those steps is a dependency. Every dependency has a version. Every version will, eventually, break something. When I started building Smeldr, I made a deliberate c...