The CI/CD Confusion
Every setup guide is complex. Kubernetes. Docker. Terraform.
For a SaaS MVP, you don't need that.
Here's what actually works.
The Simple Stack
GitHub Actions + Vercel + Supabase
That's it.
GitHub Actions for testing and deployment. Vercel for hosting. Supabase for database.
No Docker. No Kubernetes. No Terraform.
The GitHub Actions Workflow
name: Test and Deploy
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm ci
- run: npm test
- run: npm run build
deploy:
if: github.ref == 'refs/heads/main'
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npx vercel --prod --token ${{ secrets.VERCEL_TOKEN }}
What We Test
1. TypeScript Compilation
No type errors in production.
2. Linting
ESLint catches style issues.
3. Unit Tests
Critical functions. Not 100% coverage.
4. Build
Verify the build succeeds.
The Honest Take
CI/CD doesn't have to be complex.
Start simple. Add complexity when needed.
For most SaaS MVPs: GitHub Actions + Vercel covers 90% of needs.