TempPower Pro: BS 7909 Cable-Sizing SaaS (Next.js + Stripe) by Usman JabbarTempPower Pro: BS 7909 Cable-Sizing SaaS (Next.js + Stripe) by Usman Jabbar

TempPower Pro: BS 7909 Cable-Sizing SaaS (Next.js + Stripe)

Usman Jabbar

Usman Jabbar

One hour of spreadsheets, five minutes in TempPower Pro — the calculator and board designer, built solo on Next.js 15.
One hour of spreadsheets, five minutes in TempPower Pro — the calculator and board designer, built solo on Next.js 15.

The Hook

Temporary power is the part of an event nobody photographs: a genset, a few distros, a hundred metres of SWA, and a sign-off sheet that says every circuit was sized, checked for voltage drop, earth-loop impedance and fault current, and will disconnect in time. UK engineers do that maths to BS 7909 and BS 7671 — and until recently most of them did it in spreadsheets copied from the last job.
TempPower Pro started life as a free static calculator. I rebuilt it as a product: projects that save, distribution boards that draw their own single-line diagram, five compliance checks recomputed on every keystroke, reports an inspector can read, and a Free · Pro · Team plan gated on the server through Stripe. This is my own product — architecture, database, billing, compliance maths and UI.
Type the circuit, get five checks — sizing, volt drop, Zs, PSCC and disconnection recomputed on each change.

The Challenge

What "a calculator" has to become before an engineer will pay for it

Five checks per circuit, each with its own table in BS 7671 — current-carrying capacity with ambient and grouping corrections, voltage drop, earth-fault loop impedance against the device maximum, prospective fault current against breaking capacity, and disconnection time.
Circuits belong to boards, boards belong to projects, projects belong to clients — and colleagues need to edit the same project without overwriting each other.
A result is only worth something if it can be shown: a report with the circuit schedule, the checks, the designer's signature and a way to re-verify from the inputs.
The existing standalone calculators had no database at all: nothing saved, nothing shared, nothing to charge for.
Monetising a tool engineers already used for free means the free tier has to stay useful, and the paid tier has to be enforced somewhere a browser can't reach.
Every temporary supply has to prove five things. In a spreadsheet, a 15 % volt drop can sit next to the word PASS and nobody notices.
Every temporary supply has to prove five things. In a spreadsheet, a 15 % volt drop can sit next to the word PASS and nobody notices.

The Solution

1 · The calculator: one circuit, five checks

Design current, supply, run length, ambient, installation method, cable, protective device and grouping go in; the selected cable comes out with every check beside it. Correction factors (Ca, Cg, Ci) are applied automatically and shown, and the derivation is printed under the results so the engineer can see the arithmetic, not just the verdict. Everything recomputes on each change through a typed server action, validated with Zod before any maths runs.
The calculator — inputs on the left, five checks and the derivation on the right. Values illustrative, UI structure real.
The calculator — inputs on the left, five checks and the derivation on the right. Values illustrative, UI structure real.

2 · The distribution-board designer

Boards and circuits form a supply tree: genset, distro, feeders, sub-distros. The tree lives in a typed Project JSON model in PostgreSQL via Prisma, with owner and editor access controls. The single-line diagram is generated from the tree, not drawn — add a feeder and it appears on the bus with its breaker, load symbol and rating. I rewrote this designer in strict TypeScript with typed server actions after the first version leaked untyped JSON everywhere.
Supply tree on the left, generated single-line on the right. The catering run is flagged at 4.8 % before anyone books a cable.
Supply tree on the left, generated single-line on the right. The catering run is flagged at 4.8 % before anyone books a cable.
Build the tree, and the single-line plots itself.

3 · Projects, clients and roles

Projects carry client records, board counts, status and the last change; a Team plan adds seats with owner and editor roles so a colleague can size circuits without being able to delete the project. Everything is behind NextAuth v5 sessions — the client is wrapped in a SessionProvider and every route is secured, so there is no anonymous path into someone else's board.
Projects with clients, scope, status and role. Client names fictional.
Projects with clients, scope, status and role. Client names fictional.

4 · Free, Pro, Team — enforced on the server

Stripe handles checkout, webhooks and the billing portal. What Stripe does not do is decide whether a request is allowed — PLAN_LIMIT is enforced inside the server action, so a Free user saving a fourth circuit gets a 402 before Prisma is touched, whatever the UI says. Plan changes only happen through a signature-verified webhook. I chose a permanent Free plan over a trial on purpose: engineers keep using the tool, and upgrade when a real project outgrows it.
Three plans, one rule: the limit lives in the server action, and the plan only changes through a verified webhook.
Three plans, one rule: the limit lives in the server action, and the plan only changes through a verified webhook.
Free user, fourth circuit, 402 — then Stripe checkout, webhook, Pro, saved.

5 · The report an inspector reads

Each project exports a report with the circuit schedule per board (rating, cable, length, method, VD, Zs, PSCC, result), the verification list against BS 7671 and BS 7909, notes, the designer's signature and a hash of the inputs so the numbers can be re-verified later. Free reports are watermarked; Pro reports are signed.
The report — circuit schedule, verification, notes, signature and an input hash. Illustrative values.
The report — circuit schedule, verification, notes, signature and an input hash. Illustrative values.

The Engineering

One Next.js 15 app drawn like a single-line diagram — auth, data, money, limits, maths and UI each on their own breaker.
One Next.js 15 app drawn like a single-line diagram — auth, data, money, limits, maths and UI each on their own breaker.
Next.js 15 App Router on Vercel — Edge runtime for reads, Node for Stripe; typed server actions end to end.
NextAuth v5 — SessionProvider around the client, every route secured, JWT sessions.
Prisma with PostgreSQL — a Project JSON model for boards and circuits, owner and editor access control in the query layer.
Stripe — checkout routes, webhooks, billing portal; PLAN_LIMIT enforced server-side with Zod-validated input.
Calculation engine — BS 7671 tables for Ca, Cg, mV per A per m, Zs maxima and device curves, kept as data, not scattered constants.
Strict TypeScript across the board designer rewrite; Tailwind CSS for the UI.
What a keystroke triggers — parse, plan check, size, drop, Zs and PSCC, disconnection, persist, re-render. Nothing re-keyed.
What a keystroke triggers — parse, plan check, size, drop, Zs and PSCC, disconnection, persist, re-render. Nothing re-keyed.

The Outcome

Calculation time per project down from over an hour to under five minutes.
Automated checks replaced hand-marked PASS cells — the errors the spreadsheet couldn't see are now impossible to submit.
The free static tool became a revenue-generating SaaS with Free, Pro and Team gating, and paying engineering teams onboarded in the first month.
One codebase owns auth, data, billing and the compliance maths — no glue between four tools.
From a free static calculator to a paid product in one build.
From a free static calculator to a paid product in one build.

Let's build yours

If your product is a spreadsheet people already trust — an estimator, a sizing tool, a compliance check, a quoting sheet — the job is not to "make it an app". It is to keep the maths honest, give it a database, put the paywall somewhere a browser can't reach, and print a result someone will sign. That is what I build.
Message me on Contra with the sheet and who uses it, and I'll reply with how I'd turn it into a product you can charge for.
→ Start your SaaS build.
Like this project

Posted Aug 30, 2026

Next.js 15 SaaS for UK temporary-power engineers: 5 BS 7671 checks per circuit, board designer, signed reports, Free/Pro/Team gated server-side via Stripe.