Scalable SaaS Platform

New customers onboard without engineering work, on a codebase built to scale rather than be rewritten.

Person reviewing analytics charts on a laptop
Sector
SaaS · B2B SaaS
Built with
  • React
  • TypeScript
  • Node.js
  • PostgreSQL

01 · Discover

What the client needed

A B2B SaaS company had found product-market fit on an early codebase. Every new customer needed engineering work, and enterprise deals asked for features it couldn’t offer.

Requirements

  • Multi-tenancy with each customer’s data kept separate
  • SSO (SAML and OIDC) and role-based access for enterprise buyers
  • Usage-based and seat-based billing
  • Self-serve onboarding without engineering help
  • An admin console for support and customer success
  • Audit logs and a path toward SOC 2

Constraints

  • No pause in shipping product features
  • Existing customers migrated without downtime
  • A small in-house team had to own it afterwards

02 · Pitch

What we proposed

We reviewed the codebase and recommended reshaping it in place rather than a full rewrite.

Options we weighed

  • Recommended

    Incremental re-architecture

    Keeps shipping while tenancy, auth, and billing are rebuilt underneath.

  • Full rewrite

    Clean, but months without new features and a risky cut-over.

  • Patch features onto the current code

    Fast now, but every enterprise ask would cost more later.

What we agreed

  • Tenancy and auth first, then billing, then the admin console
  • Feature flags so changes ship behind switches
  • Automated tests before each risky change

03 · Build

How we built it

We rebuilt the foundations in stages behind feature flags, so customers never saw a big-bang switch.

Every requirement, and what we built for it

RequirementWhat we built
Separate customer dataTenant isolation enforced in the database with row-level security
Enterprise sign-inSSO with SAML and OIDC, plus roles and permissions per workspace
Flexible billingUsage metering with seat and usage-based plans through Stripe
Self-serve onboardingSign-up, workspace setup, and invites with no engineering involved
Support toolingAn admin console to view accounts, manage plans, and help users
Compliance groundworkAudit logs, access reviews, and secrets management

Platform and architecture

Frontend
React and TypeScript
Backend
Node.js APIs with tenant context on every request
Data
PostgreSQL with row-level security per tenant
Delivery
CI/CD with automated tests, preview environments, and feature flags

04 · Handover

Launch and handover

We migrated customers in batches and paired with the in-house team until they owned each part.

  1. Customer migration in batches with rollback plans
  2. Architecture decision records for every major choice
  3. Pairing sessions with the in-house engineers
  4. Runbooks for releases and incidents

05 · Outcome

The outcome

New customers onboard without engineering work, on a codebase built to scale rather than be rewritten.

New customers onboard themselves, and enterprise requirements are features rather than blockers.

  • Onboarding no longer needs engineering time
  • SSO and roles ready for enterprise deals
  • A codebase built to scale rather than be rewritten

Have a project like this?

A few lines is enough. You’ll hear back from an engineer, not a salesperson.