Productionizing a startup app to 10,000 users
✓ Scaled from 1,200 to 10,000+ users without a rewrite
✓ Uptime lifted from 99.2% to 99.95%
✓ Deploys went from weekly to multiple times a day

Before → after

Metric Before After
Users served 1,200 10,000+
Uptime 99.2% 99.95%
Deploy frequency Weekly Multiple/day

A startup’s app had found product-market fit, but the codebase and infrastructure hadn’t caught up. Single-tenant, no observability, and manual deploys were already creaking at 1,200 users.

The challenge

  • No multi-tenancy, each customer was a one-off deployment.
  • Manual deploys that took an hour and happened once a week.
  • No monitoring, so the team learned about outages from customers.
  • No backups, no rollback plan, and no documented runbooks.

What we built

  1. Multi-tenancy refactored the app to serve all customers from one secure, isolated codebase.
  2. CI/CD set up automated builds and tests so every merge deploys in minutes.
  3. Observability wired Cloud Monitoring with dashboards, alerts, and SLOs.
  4. Resilience added backups, point-in-time recovery, and rollback playbooks.
  5. Infra as code codified everything in Terraform so the environment is reproducible.

The results

The app now serves 10,000+ users with 99.95% uptime, and the team ships multiple times a day instead of once a week. Growth stopped being a fire drill and became a non-event.

The takeaway

“Production-ready” is a set of boring, non-negotiable basics, tenancy, CI/CD, observability, and backups. Skip them and growth becomes your biggest risk.

Stack Next.jsPostgresCloud RunTerraformCloud Monitoring
“
Growth used to terrify us. Now we ship multiple times a day and sleep fine.
Devin CTO · SaaS startup
Start a project like this ← All case studies