CI/CD pipelines
Every push is built, tested and checked the same way, and a release is one approved step rather than a checklist someone runs from memory.
- Tests, types and linting on every pull request
- Preview environments per branch
- Database migrations gated before they reach production
