Capabilities
What we build.
Five kinds of engagement. All of them end the same way: software in production that your team can operate without us, with the repository, the infrastructure and the documentation in your name.
01 — Product
Product engineering
A web application from an idea to paying customers. We work in thin slices so the risky part — the part that decides whether this is worth building — is in front of real users in weeks, not quarters.
Most of what kills a software product is not the feature list. It is the authentication nobody wanted to write, the billing edge cases, the export a customer needs on day one, and the migrations that break on the third deploy.
That work is the work. We do it deliberately: a database schema that says what the business means, an API with a contract, tests around the paths that cost money, and a deploy you can roll back.
- InterfaceServer-rendered pages, accessible by default, fast on a phone
- AccountsSessions, passwordless or password + second factor, roles
- BillingStripe subscriptions, webhooks, proration, dunning, the customer portal
- DataPostgres or SQLite, migrations you can run forwards and backwards
- OperationsCI, staging, backups, monitoring, a runbook someone can follow
02 — Web
Website development
The site a business actually needs, built by engineers and sold at a fixed price. Three packages, priced on their own page, with the number of person-days written down so you can see what you are buying.
Most websites are either a template with your logo on it, or an agency project that bills discovery before it will name a figure. Both leave the same gap: nobody measured whether the thing is fast, whether it can be edited by the person who owns it, or whether it will still deploy in two years.
We build sites the way we build software — server-rendered, no framework weighing down the first paint, a content model rather than a page builder, and a deploy you can roll back. The prices are fixed because the work is repeatable.
- Launch$6,500 — five pages, two weeks
- Catalogue$14,500 — fifteen pages and a CMS, four weeks
- Commerce$28,000 — a store with checkout, six weeks
- AlwaysLighthouse 95+, WCAG AA, your accounts, a written handover
- CareHosting, backups and changes from $180 a month
03 — Platform
Platforms & integrations
The systems that move money and data between the tools a business already runs on. Boring, observable, and safe to change.
An integration is a promise about failure. The provider will time out, the webhook will arrive twice, the currency will be wrong once, and someone will need to reconcile it by hand. We design for that with idempotency keys, an event log, a retry policy and an operator screen, instead of discovering it in production.
When other teams need to build on top, they get a documented API with a version and a deprecation policy — not a shared database and a phone call.
- PaymentsStripe, refunds, payouts, reconciliation against the ledger
- AccountingXero, QuickBooks, invoice and credit-note synchronisation
- DataWarehouse loads, CDC, nightly reconciliation, one source of truth
- EventsQueues, workers, idempotent handlers, dead-letter handling
- InterfacesREST or RPC with OpenAPI, auth, rate limits, versioning
04 — Applied AI
AI features that survive contact with users
Retrieval over your own documents, an assistant inside a workflow, a classifier that replaces a queue of manual decisions. Measured, guarded, and priced per request.
A language model is a component, not a product. It is non-deterministic, it fails in ways that look like success, and its cost scales with use rather than with seats. All three facts have to be designed around, or the feature ships and then quietly gets switched off.
We build the evaluation set before the prompt, keep a deterministic path for the cases that matter, cap spend per tenant, and log what the model was given so a wrong answer can be explained rather than guessed at.
- GroundingChunking, embeddings, retrieval tuned against real questions
- EvaluationA labelled set, a score, a regression gate before every deploy
- GuardrailsSchema-constrained output, refusal paths, human review where it counts
- CostPer-tenant budgets, caching, smaller models where they are enough
- PrivacyYour documents stay in your infrastructure; no training on your data
05 — Rescue
Rescue & stabilisation
A release that keeps slipping, a codebase nobody wants to touch, an agency that left mid-project. We start by making change safe again.
The first two weeks are diagnosis, not heroics: what runs, what is deployed, what the tests actually cover, where the money leaks, and what a rollback would look like today. You get that as a written assessment with a costed plan, whether or not you continue with us.
Then we stabilise in order of risk — the payment path first, then the parts that wake people up at night, then the code quality that makes every future change slow.
- Week oneRepository, infrastructure and deploy audit; a written risk list
- Week twoThe first fix in production, with a test that would have caught it
- ThenPayment and auth paths hardened, monitoring, alerts, runbook
- HandoverDocumentation, pairing sessions, and a plan your team owns
Next
Not sure which of these you need?
Describe the problem in a paragraph. We will tell you which one it is — or that it is none of them.