CI/CD as a two-person dev agency

Two people. 19 projects shipped. Zero manual deployments.
A lot of small teams accept fragile delivery as normal. We never did.
At CovalTech, we set up our CI/CD and deployment process from day one with the same standards we would expect from a much larger engineering team, because quality is a process decision, not a headcount decision.
Everything that can be automated should be automated.
Our stack is simple and reliable:
GitHub Actions handles what should never depend on memory or routine: tests, builds, and image publishing.
Docker keeps environments consistent. No more "it works on my machine." Every service runs in a reproducible container.
Caddy handles reverse proxying and automatic HTTPS. Minimal overhead, no certificate renewal headaches, and one less thing to worry about in production.
The result is straightforward: every push to main goes through the same pipeline. Tests run. Images build. Deployment happens. If something fails, it stops there.
Two people. 19 projects shipped. Zero manual deployments.
Good software is not just about what you build. It is also about how reliably you ship it. That is something we take seriously.