§ 03.00 — Productized engineering

Three tiers. Five sprints. Three app builds.

No hourly. No "let's scope it." Every offer below has a fixed price, a fixed timeline, a published deliverable list, and its own onboarding intake — so by the time we meet, the call is about decisions, not gathering basics. Live performance numbers across active engagements are published on /benchmark.

Capacity ledger
2 / 3
Project slots open
09 Jun 2026
Next available start
§ 03.01

Tier ledger

Three offers · disjoint
Tier 01 · Retainer

Care Plan

For live WordPress sites that need real maintenance — not a "set and forget" plugin update racket.

$400 /mo
Timeline
Continuous · cancel m3
Includes
Updates · backups · 2 h/mo
Excludes
New features
Open Care Plan →
Tier 02 · Sprints Recommended

Sprint Catalogue

Six fixed-scope, fixed-price engagements. Each one ships its own SOW, runbook, and Loom on delivery.

$1,500 · starts at
Timeline
7 — 28 days
Includes
Audit · Rescue · A11y · etc.
Excludes
Open-ended scope
Open Sprint Catalogue →
Tier 03 · Fractional

Tech Lead

Senior judgement on a monthly retainer, not a CTO hire. For nonprofits and SMBs without in-house dev.

$2,500 /mo
Timeline
3-month minimum
Includes
Roadmap · vendors · review
Excludes
Implementation hours
Open Fractional Lead →

Each tier has its own onboarding intake — no call needed to start the conversation.

§ 03.05

Build · Apps

Mobile · Web · Real-time

Beyond WordPress, I build production mobile and web applications. Same fixed-bid discipline, same published deliverables, same onboarding intake before any call.

Build 01 · Mobile

Mobile App

Expo + React Native · iOS + Android from a single codebase, OTA updates, native modules where they matter.

$18k + · fixed-bid
Timeline
6 — 14 weeks
Includes
Discovery · build · store submission
Stack
Expo · TypeScript · EAS
Open Mobile App →
Build 02 · Web app

Web App / SaaS

Next.js + Drizzle + Postgres · type-safe end to end. Auth, billing, admin, jobs — vendor-portable.

$24k + · fixed-bid
Timeline
8 — 16 weeks
Includes
Auth · billing · admin · jobs
Stack
Next.js 15 · Drizzle · Postgres
Open Web App →
Build 03 · Real-time

Real-time

WebSockets · Liveblocks · CRDTs · presence, chat, collaboration, live dashboards. p95 < 80 ms.

$10k + · fixed-bid
Timeline
4 — 10 weeks
Includes
Presence · chat · sync · live data
Stack
WS · Liveblocks · Yjs · Partykit
Open Real-time →

Each app service has a service-specific intake — platform, scale, consistency model captured before the discovery call.

§ 03.03

Out · of · scope

By default · always

Every SOW includes this list, verbatim. Listing it publicly prevents 80 % of scope creep before it starts. If you need any of these, I will name two people who do them well — but they're not in any engagement of mine unless they appear on a written addendum, separately priced.

  • × Copywriting Out
  • × Photography Out
  • × Branding Out
  • × Content production Out
  • × Paid ads Out
  • × SEO link-building Out
  • × Hosting fees Out
§ 03.04

Legal · Hygiene

SOW · payment · IP · indemnity
A Written contract Every engagement uses a written SOW. Download sample SOW (PDF) ↗
B Payment milestones Standard 40 / 40 / 20. Day-one invoice, midpoint, handover.
C Professional indemnity Professional indemnity insurance via Hiscox · £1 m cover · policy reference on request.
D IP transfer All deliverables transfer on final payment. Codebase is yours. No "perpetual licence" weasel clauses.
E Subcontracting Never without naming the subcontractor in the SOW, separately priced.

Which one do you need? Start a project and let's name it.

Start a project