Hi Everyone! I built this project because I kept running into the same gap in backend tutorials.
Most resources focus on writing the application itself, but very little explains everything around it that teams actually need to run a service in production.
So I tried documenting a full production-style setup around a very simple Todo API (the app itself is intentionally trivial).
The project covers things like:
- repository strategy and team workflows
- CI/CD with rollback to previous ECS revisions
- forward-only database migration strategy
- observability stack (Prometheus, Grafana, Loki)
- secrets and configuration via AWS Secrets Manager
- security baseline and error handling
- release automation with changelog generation
- E2E tests with Testcontainers
The infrastructure side (Terraform for AWS ECS, RDS, ElastiCache) lives in a separate repository and includes OIDC-based CI/CD auth, debugging access to private resources, and the observability stack.
The goal isn't to provide a boilerplate to clone, but to explain the decisions behind running a backend service in production.
Happy to answer questions or discuss alternative approaches.
alexsergey2•2h ago
Most resources focus on writing the application itself, but very little explains everything around it that teams actually need to run a service in production.
So I tried documenting a full production-style setup around a very simple Todo API (the app itself is intentionally trivial).
The project covers things like:
- repository strategy and team workflows - CI/CD with rollback to previous ECS revisions - forward-only database migration strategy - observability stack (Prometheus, Grafana, Loki) - secrets and configuration via AWS Secrets Manager - security baseline and error handling - release automation with changelog generation - E2E tests with Testcontainers
The infrastructure side (Terraform for AWS ECS, RDS, ElastiCache) lives in a separate repository and includes OIDC-based CI/CD auth, debugging access to private resources, and the observability stack.
The goal isn't to provide a boilerplate to clone, but to explain the decisions behind running a backend service in production.
Happy to answer questions or discuss alternative approaches.
Backend: https://github.com/prod-forge/backend
Infrastructure: https://github.com/prod-forge/terraform