Published on 2025-08-13 9:20 by Kevin Coyle
Devops let’s goooo
In June, we merged a small but important UX fix to stabilize the navigation dropdowns. Since then, we focused on hardening our infrastructure, clarifying deployment, and polishing a few aspects of the app. This post summarizes the most meaningful changes from my last post.
Much like this badge… I think this Terrform stuff is all stuck together well.
Highlights
- Infrastructure as Code (Terraform)
- Finalized a full Terraform setup under
terraform/
to provision the app’s AWS foundation: VPC, subnets, security groups, IAM, RDS, S3, ECR, ACM, and an EC2 module withuser_data
bootstrap. - Added environment-specific variables for
dev
andprod
, plus consolidated variables and outputs. Deployment docs included.
- Finalized a full Terraform setup under
- Deployment and Ops
- Updated Docker assets and
docker-compose.prod.yml
; addedbackend/Dockerfile.prod
and annginx/nginx.conf
for production reverse proxying. - Added
scripts/setup-aws-infrastructure.sh
and deployment examples (deploy-example.yml
,main-example.yml
).
- Updated Docker assets and
- Frontend and middleware
- Minor refinements to
src/components/Navigation.tsx
and the community Q&A page atsrc/app/community/[questionId]/page.tsx
. - Introduced
src/middleware.ts
to support runtime behaviors at the edge (e.g., redirects/headers), paving the way for future platform features.
- Minor refinements to
- Developer experience
- Added a
Makefile
for common tasks and several example env/config files (.env.local.backup
,env.prod.example
). - Dependency housekeeping in
package.json
andpackage-lock.json
.
- Added a
By the numbers
- I’ve changed 54 files, 6181 insertions, 557 deletions
What this enables
- Repeatable infrastructure: Teams can stand up and evolve environments with code review and versioning.
- Clearer deployments: Docker, Nginx, and example pipeline files make the release path easier to follow and automate.
- Operational guardrails: Middleware and config defaults reduce drift and support future auth/routing behaviors.
Getting started (at a glance)
- Review the infrastructure docs in
terraform/TERRAFORM_DEPLOYMENT.md
andAWS_DEPLOYMENT.md
. - Use the
Makefile
targets and example YAML files to scaffold CI/CD, andnginx/nginx.conf
for production reverse proxy. - Sync local/env variables from the provided examples (
env.prod.example
,.env.local.backup
).
Written by Kevin Coyle
← Back to blog