SaaS Product Engineering
The feature set is rarely what sinks a subscription product. Tenancy, billing and the trial-to-paid path are, and they are hard to retrofit once real customers are on the system.
How the engagement runs
Agreed before we start, not discovered later. You own everything we produce, whether or not you continue with us.
- 01
Model
Data model + tenancy design
- 02
Platform
Working platform primitives
- 03
Product
Shipped product + analytics
- 04
Operate
Ops tooling + runbook
- Starts with
- Product or platform review
- You get
- Multi-tenant platform
- Shape
- Build or embedded team
You are probably here because
If none of these sound familiar, this may not be the practice you need. Tell us what is actually happening.
- 01
Tenant isolation enforced only in application code
- 02
A pricing change that needs an engineering project
- 03
Trials that sign up and never return
- 04
Releases that go to everyone at once, or not at all
The parts that are expensive to retrofit
Not all four land in every engagement. We scope to what the problem actually needs.
Isolation you can prove
Tenant boundaries enforced below the application, so a mistake in feature code cannot leak one customer's data to another. On Postgres we usually do that with row-level security; the principle matters more than the mechanism.
Metering separate from billing
Usage is recorded as events and priced afterwards, so changing a plan or adding a tier does not require a data migration.
Onboarding measured at each step
Instrumented from sign-up to first real value, so you can see which step loses trials rather than guessing at the funnel.
Releases behind flags
New features go to a cohort first. A bad release is switched off in seconds rather than rolled back under pressure.
What we can point at
Including where we cannot. An unproven claim is worth less to you than a stated limit.
Three subscription products we build and operate ourselves
Email Marketing, Customer Support and Travel Assistant: we are our own first customer for this practice
See itNo third-party SaaS platform delivered for a client yet
Our experience here is running our own. That is a real limitation and we would rather you hear it now.
Questions this answers
If you cannot answer these about your current system, that is usually where we start.
Are we certain one customer cannot see another's data?
Can we change pricing without a migration?
Where exactly do trials stop converting?
How do we ship to some customers before all of them?
How the engagement runs
Indicative, not a template. The shape holds; the depth of each phase moves with the problem.
Model
Tenancy, roles and the billing model settled before code. These are the decisions that are expensive to reverse once customers are live.
Data model + tenancy design
Platform
Isolation, authentication, metering and the flag system, built as the base every feature sits on.
Working platform primitives
Product
The features customers actually pay for, with onboarding instrumented from the first release rather than added later.
Shipped product + analytics
Operate
Support tooling, usage visibility and the runbook your team uses when a customer reports something odd.
Ops tooling + runbook
What we reach for first
Not the only things we work with: the ones we default to unless there is a reason not to.
Platform
- Next.js
- Node
- Postgres RLS
Billing
- Stripe
- Usage metering
- Plan limits
Access
- SSO
- Roles
- Audit logs
Release
- Feature flags
- Cohorts
- Product analytics
Tell us what you’re trying to build
An idea, a stalled project, or a system that has outgrown its architecture. Send it over and we’ll tell you where we would start and whether we’re the right team for it.
- Response time
- Within one business day
- First call
- 30 minutes, no deck
Prefer to write first? Send the brief and we’ll come back with questions before we come back with a proposal.