The Myth of the Big Team
There is a persistent myth in software that serious products require serious headcount. That you need separate teams for frontend, backend, DevOps, QA, and security before you can ship anything production-grade.
We ship enterprise-grade SaaS products with 2-3 engineers per project. Not MVPs held together with duct tape - real products with multi-tenant architecture, subscription billing, proper auth, monitoring, and infrastructure as code.
Here is how.
The Stack That Scales Down
Our standard stack is chosen specifically because it minimizes the number of people needed:
- Next.js for frontend and API routes (one framework, one deployment)
- TypeScript everywhere (fewer context switches, shared types)
- Postgres on RDS (boring, reliable, scales further than you think)
- Terraform for infrastructure (repeatable, reviewable, no snowflake servers)
- GitHub Actions for CI/CD (no separate build team needed)
- AWS for hosting (ECS Fargate means no server management)
The key insight is that every technology choice either adds or removes the need for a person. We pick technologies that remove the need for people.
Patterns That Save Headcount
1. Monorepo, Monolith-First
Start with a monorepo and a monolithic application. Do not split into microservices until you have a specific scaling problem that requires it. We have seen teams of 3 waste months setting up Kubernetes clusters for apps that would run fine on a single ECS task.
2. Infrastructure as Code from Day One
Every resource in Terraform. Every environment reproducible with one command. This means you do not need a DevOps person - any engineer on the team can deploy, debug, and manage infrastructure.
3. Feature Flags Over Feature Branches
Long-lived feature branches create merge conflicts and require coordination. Feature flags let everyone deploy to main constantly and toggle features for specific users or environments. We use LaunchDarkly or a simple homegrown solution depending on the project.
4. Automated Everything
If a human does it more than twice, automate it:
- Database migrations run automatically on deploy
- Tests run on every PR
- Preview environments spin up automatically for every branch
- Alerts fire to Slack when something breaks
- Dependency updates are automated with Renovate
5. AI-Augmented Development
This is the newest addition to our toolkit, but it has had the biggest impact. Claude Code handles test writing, code review first passes, documentation, and boilerplate generation. This effectively adds 30-40% more capacity to each engineer. We wrote a full breakdown of this in How Claude Code Changed Our Workflow.
What We Do Not Do
Equally important is what we skip:
- No Kubernetes unless the client specifically needs it (Fargate is simpler and cheaper for 95% of use cases)
- No microservices until we have a proven scaling bottleneck
- No separate staging environment - we use feature flags and preview environments instead
- No manual QA - automated tests and preview environments catch regressions
- No custom auth - we use AWS Cognito or Auth0 depending on requirements
The Results
With this approach, a 3-person team typically ships:
- MVP in 6-8 weeks
- Production-ready v1 in 10-14 weeks
- With full CI/CD, monitoring, and infrastructure as code
- Supporting hundreds to thousands of concurrent users
The secret is not working harder or faster. It is making fewer decisions, using fewer tools, and automating everything that is not a core product decision.
If you are weighing the build-vs-buy decision, we cover that trade-off in detail in Build vs Buy: When to Hire a SaaS Development Partner. And if you have a product idea and a small team (or no team yet), let us talk about what it would take to ship it - or learn more about our custom SaaS development service.