Next.js 16, Supabase, TypeScript. Multi-tenant from the first commit. Stripe wired to real webhooks, RLS enforced at the row, audit on every privileged write. Shipped to your cloud — the part Shopify-app builders forget.
What you get
Row-level isolation enforced at the database — a misrouted query returns nothing, never another tenant's row.
Stripe with plans, trials, proration and dunning — not a Checkout redirect standing in for a billing surface.
Tenant and user management, built for your team from day one, not retrofitted after the first support ticket.
Every privileged action captured — the trail an enterprise procurement team asks for in week one of diligence.
How it runs
The same stages run every engagement. The service decides the scale, not the method.
01Blueprint
Tenant model, billing rules and role matrix on the page. Two weeks. No workshops, no decks.
02Blueprint
Schema, security boundary and integration points named. You sign off before a line is written.
03Forge
Eight to twelve weeks. Weekly demo on a real preview URL. Security patterns enforced by default.
04Forge
Deploy to your cloud, transfer keys, walk through the runbook. A handover doc that names the failure mode.
Pricing
Single-tenant MVP
The foundations in full, ready to grow into multi-tenant later.
From £18,000
Multi-tenant from day one
Stripe, roles and an admin tool built in from the first commit.
Example: £60,000
Production engagement
Workspaces, SSO, audit, a year of schema headroom.
Example: £100,000
Proof in production
SaaS Platform · Featured
A product-led business needed a SaaS that could support multiple frontends, partner integrations, and future expansion without repeatedly…
Modernisation · Case study
A working platform that had outgrown its original architecture. Auth, data, and observability rebuilt without a service interruption — the…
how-to12 min
When does a business need custom software instead of buying a tool? A build-vs-buy framework for UK SMBs —…
Read guidehow-to10 min
How to choose an AI development company in the UK: the red flags, the questions to ask before signing, and…
Read guideQuestions
Row-level security at the database, organisation IDs on every table, foreign keys that enforce the boundary. The data plane refuses to return another tenant's row even if the application tries. Scales to enterprise tenants without re-architecture.
Stripe by default — best webhook hygiene, best dunning, best dispute flow. Paddle if you need a Merchant of Record for global VAT. Picked on the call, wired with real webhooks, not a checkout link.
Both. Free trials with card-required or no-card, grace periods, automatic downgrade. Enterprise plans with custom pricing, invoiced billing, net-thirty terms. Self-serve and sales-led on the same data model.
Custom domains per tenant, per-tenant theming, per-tenant email sender. The reseller billing layer sits on top of the per-tenant Stripe customer. Built in, not bolted on.
You. Your repo, your Supabase, your Stripe, your Vercel, your domains. No Canarlo SaaS in the loop. Any competent engineer can read the diff and extend it.
Talk to us
Scoped and priced before anything is built.