The challenge
The founding team had validated demand with a spreadsheet-driven prototype, but it couldn’t isolate customer data, handle growing data volumes or support self-serve onboarding.
They needed a production platform that enterprise prospects would trust, without hiring a full engineering team up front.
Our solution
We designed a multi-tenant architecture with tenant isolation enforced at the database layer, and built the product as a Next.js application backed by a typed Node.js API.
Infrastructure was defined in Terraform and deployed to AWS ECS Fargate behind CloudFront, with PostgreSQL on RDS and background jobs for heavy aggregations.
- Row-level security in PostgreSQL for tenant isolation
- Self-serve onboarding, SSO and role-based access
- Pre-aggregated reporting tables refreshed by background workers
- Blue/green deployments via GitHub Actions
Architecture
Edge
- CloudFront
- WAF
App
- Next.js (ECS Fargate)
- Node.js API
Async
- SQS
- Worker tasks
Data
- RDS PostgreSQL
- S3
Technology
- Next.js
- TypeScript
- Node.js
- PostgreSQL
- AWS ECS Fargate
- RDS
- CloudFront
- Terraform
- GitHub Actions
Outcomes
- Launched to first paying customers on a platform built for enterprise security reviews
- Report load times dropped noticeably after pre-aggregation was introduced
- The client’s small in-house team now ships features independently on the codebase