The most confusing part was that nothing “broke” in the codebase. The pipeline simply stopped executing:
1 error The job was not started because an Actions budget is preventing further use. This job failed
That’s a different class of failure than a red build. It’s not a test failing, not an infra misconfiguration — it’s the platform telling you: you’re out of runway.
Lesson: treat CI/CD budget and quotas as production dependencies, not “admin settings.”
Monorepos are great, but the default failure mode is expensive: one small change can trigger the whole world:
Lesson: in a monorepo, CI/CD needs routing. If you don’t explicitly limit what runs, you’ll pay for everything every time.
When the pipeline couldn’t start, it forced a hard look at the operational shape of the project:
Lesson: “Quota exceeded” is feedback. If your MVP can’t survive friction (CI minutes, rate limits, transient cloud failures), it’s not production-shaped yet.
The practical solution was to move the project under the organization so I could:
Concretely, I migrated the monorepo from:
lucab85/proteinlens.com to:proteinlens/proteinlens.comLesson: sometimes the best “technical” fix is an organizational change: who owns the repo, who pays, and what entitlements the project can use.

Linking GitHub billing to Azure (especially when you already run your stack on Azure) keeps the dev workflow consistent: one cloud, one place to manage spend.
Reference: Connecting an Azure subscription https://docs.github.com/en/billing/how-tos/set-up-payment/connect-azure-sub
Lesson: aligning CI/CD spend with the same cloud subscription as your runtime spend reduces accidental limits and surprises.

Moving to the org also means I can adopt GitHub Copilot Business in a way that’s manageable:
Lesson: tooling upgrades are easiest when the project lives where teams and billing live: the organization.

After this, the concrete “engineering hygiene” actions became obvious:
Lesson: the best CI/CD is boring, predictable, and hard to accidentally abuse.
On Dec 25th I messaged a few friends: “I’m working on this project… if you want to put the site under pressure with some tests. It’s all on Azure. Merry Christmas!”
…and then reality showed up. Errors, quota limits, and eventually the one that made it painfully clear CI/CD is part of the product:
“The job was not started because an Actions budget is preventing further use.”
That turned into a mini post-mortem: not just “how do I unbreak deploys,” but how do I build an MVP that survives real usage and real constraints?