Originally published on ajeetchaulagain.com on May 13, 2026. I've been building ShipWindow for a few months now — deliberately slowly, with a production mindset from day one . No users yet, but real architecture, real CI, infrastructure-as-code. "Ship fast, refactor later" might be the usual call for a side project like this. But I wanted to try balancing it with a production mindset as I went — still shipping, but thinking a bit further ahead while I did . The result has been a mix. Some of the production-minded choices have paid off — the CI work I'm about to walk through is one of them. This post is mostly about the part that paid off. CI is where that mindset showed up early. When the project was in its early phase, I had a minimal workflow validating each PR — lint, type-check, and tests running one after another, sequentially. It was fine for the time. But as the project grew, so did the workflow.…