The Short Answer
Building software for UK tradespeople sounds niche. It is — and that's the point.
The job management problem for a plumber in Manchester is meaningfully different
from a project manager using Jira. Different enough that every general-purpose tool
fails them in the same three ways: too slow to use on site, no CIS support, and no
offline mode.
This is what we learned building Sleepless Tradesman,
an AI-powered admin app for UK tradespeople.
Who Are UK Tradespeople and What Do They Actually Need?
There are roughly 2.7 million self-employed tradespeople in the UK — electricians,
plumbers, builders, gas engineers, tilers, plasterers. Most run sole trader or small
limited company setups. They don't have an office manager. They invoice from their
van. They quote while standing in a customer's kitchen.
Before writing a line of code, we needed to understand what job management actually
meant to this audience. Not what we assumed — what they actually do. The patterns
were consistent across trades:
- WhatsApp for all customer communication
- A notes app or nothing for job details and materials lists
- A spreadsheet or handwritten invoice for billing
- Chasing payment by text as the primary collections strategy
If you want to understand the full scope of what these users need — job cards, photo
documentation, subcontractor coordination, compliance certificates, profitability
tracking — this guide on the
best job management app for UK tradespeople
maps it out in detail. We used it as a constant sanity check against our own product
assumptions throughout development.
What Job Management Software Needs to Do for UK Trades
Job Cards
A job card is the tradesperson's single source of truth for a job: customer details,
site address, scope of work, materials needed, photos taken, sign-off required. Every
trade has a version of this. The software equivalent needs to be fast to create (under
60 seconds), accessible offline, and linkable to a quote and invoice.
Photo Documentation
UK building regulations, landlord certificates, and insurance claims all depend on
documented evidence of work. An electrician completing an EICR needs timestamped
photos. A plumber fitting a new boiler under a warranty scheme needs before-and-after
shots. The app needs to attach photos to specific jobs — not just dump them into a
generic gallery.
CIS — The Feature Most Apps Miss
The Construction Industry Scheme is HMRC's tax deduction mechanism for the
construction sector. Roughly 30% of UK tradespeople work under CIS — subcontractors
whose clients deduct 20% (or 30% for unregistered workers) at source and pass it to
HMRC.
If your job management or invoicing app doesn't handle CIS deductions automatically,
those users can't legally use it for their actual work. We added CIS support late in
development and it cost us avoidable churn.
Subcontractor Coordination
Many trades hire subbies for specific jobs — a builder who needs a plasterer for one
room, or an electrical contractor who brings in a specialist for commercial work. The
software needs split job visibility: the main contractor sees everything, the
subcontractor sees only their assigned tasks.
Compliance Certificates
Gas Safe, Part P electrical, FENSA window installation — these are legally required
documents that tradespeople need to store, retrieve, and send to customers and
landlords. An app that stores them against the relevant job and sends them
automatically on completion removes an entire category of admin stress.
Profitability Per Job
Most tradespeople don't know whether a job made money until weeks later, if ever.
Labour hours, materials cost, subcontractor payments, travel — the app needs to
surface margin per job clearly. This is the feature that justifies a subscription for
the financially aware tradesperson.
The Technical Stack
We went with:
| Layer | Technology |
|---|---|
| Framework | Next.js App Router |
| Database | Neon PostgreSQL via Prisma ORM |
| Auth | NextAuth v5 (Google, Apple, Email OTP) |
| Mobile | Capacitor (iOS) |
| AI | Claude via Anthropic API |
The AI quoting flow works like this: a tradesperson describes the job in plain English
— "fit a new consumer unit, 18 ways, full rewire of a three-bed semi, supply and
fit" — and the app generates a professionally formatted, itemised quote with their
rates, VAT, and CIS applied. It takes about 60 seconds and produces a PDF the
customer can sign.
The Server/Client Tension
The main architectural tension has been between Next.js server components (excellent
for SEO and initial page load on guides and marketing pages) and the highly
interactive dashboard (fundamentally better as client components). We ended up with a
clean hybrid:
- Static/server-rendered: marketing pages, guides, landing pages
-
Fully client-side: everything inside
/dashboard
Analytics Inside WKWebView
One we didn't anticipate: Apple's WKWebView applies Intelligent Tracking Prevention
aggressively. Client-side Google Analytics (gtag) is often blocked entirely inside
Capacitor iOS apps. We were undercounting app-based sign-ups in GA4 for months before
we noticed the discrepancy against our database.
The fix was moving the sign_up event server-side, fired from the /api/profile
route handler on first onboarding completion via the GA4 Measurement Protocol:
typescript
// Fires from the server — WKWebView can't touch it
await fetch(
`https://www.google-analytics.com/mp/collect?measurement_id=${MEASUREMENT_ID}&api_secret=${SECRET}`,
{
method: "POST",
body: JSON.stringify({
client_id: extractClientIdFromCookie(cookieHeader) ?? `server.${userId}`,
user_id: userId,
events: [{ name: "sign_up", params: { method: "web" } }],
}),
}
);
Top comments (0)