Continuous integration
Four jobs in parallel on every push: the web app builds on Linux (which catches file-name case bugs Windows forgives) and stays within an 800 KB startup budget; the server installs from scratch, its migrations form a single line and 112 unit tests pass; Playwright starts the real server on an empty database and clicks through the app; the demo's Docker image is built, started and smoke-tested like a visitor would use it.