Technical
Deployment Simplicity: Git Push Is Still the Gold Standard
Deployment complexity is where engineering time goes to die. I spent the first half of 2025 trying sophisticated deployment pipelines. I spent the second half replacing them with git push. The simplest deploy is almost always the right deploy. Here is what I learned.
The Spectrum
Deployment strategies from simple to complex:
- Git push to Vercel: zero config for frontend
- GitHub Actions with fixed workflow: one YAML file
- SAM CLI or Serverless Framework: infrastructure as code
- Full Terraform: declarative cloud infrastructure
- Custom Kubernetes pipeline: bring-your-own orchestration
Most projects need level 1 or 2. A few need level 3. Almost none need level 4 or 5. Many teams end up at 4 or 5 anyway because it feels serious. That seriousness is pure cost.
What Git Push Actually Delivers
For Vercel-hosted Next.js:
git push origin main
# 30 seconds later: deployed, live, TLS-terminated, CDN-cachedNo YAML. No Dockerfile. No build script. The platform reads the repo, runs the build, and deploys. For a surprising number of projects this is everything you need.
When to Step Up
Add GitHub Actions when you need:
- Backend deploys to AWS Lambda
- Pre-deploy tests that must pass
- Environment promotion (staging to production)
- Scheduled jobs outside the main app
Add SAM or Serverless Framework when you need:
- Multiple Lambda functions with shared IAM
- Complex API Gateway configurations
- Resource dependencies that must be declared
When to Never Step Up
Kubernetes is probably wrong for you unless you already know you need it. If you cannot name the specific reason you need Kubernetes, you do not need it. Use a managed platform instead.
The Hidden Cost of Complexity
Every layer of deployment complexity costs:
- Debugging time: more layers means more places to fail
- Onboarding time: new developers learn the pipeline before they ship
- Bill surprises: complex infra has complex pricing
- Lock-in risk: complex pipelines are hard to migrate
Simple deploys are not slower. They are just honest about what the project actually needs.
The Gold Standard Again
Git push to Vercel. Nine months into running production apps on it, I still recommend it as the default for frontend. Add complexity only when the requirements actually force it.
The Rollback Story
Fast forward deploys mean nothing without fast rollbacks. Every deploy I trust is one I can revert in under a minute. Vercel makes this trivial through the dashboard. GitHub Actions with tagged releases makes it nearly as fast. Rollback speed is the insurance that makes frequent deploys safe.
The Environment Pattern
- Preview deploys per pull request (automatic on Vercel)
- Staging environment on a dedicated branch
- Production on main, deploys only from merged PRs
Three environments, clear rules, no surprises. Complexity is the enemy of reliable deploys.
For backend deploys, see the AWS SAM quickstart.
RELATED READING
The Consulting Shift I Am Making In Year Two
After a year of writing and building, my consulting practice is changing shape. Shorter engagements. Sharper outcomes.
ReadThe Frontend Shift: Shipping Less JavaScript In Year Two
A year ago I reached for Next.js for everything. This year I often reach for nothing.
ReadThe Serverless Lesson I Would Write On A Sticky Note
After a year of shipping serverless projects, one rule explains most of the wins and all of the losses.
Read