Web applications
Product front-ends and internal tools. React, Next.js or Astro on the client; Node or Python behind it; Postgres underneath. We cover auth, roles, payments, file handling and the admin screens your team will actually live in.
We work on a small number of projects at a time. Below is what we take on and how the commercial side is arranged.
Product front-ends and internal tools. React, Next.js or Astro on the client; Node or Python behind it; Postgres underneath. We cover auth, roles, payments, file handling and the admin screens your team will actually live in.
Services other systems depend on. Versioned endpoints, real error handling, retries and idempotency on anything that touches money or messaging, and documentation written for the person who joins next year.
Getting the thing live and keeping it there. Containerised builds, infrastructure defined in code, CI on every push, structured logs, alerting that fires before your customers notice, and a rollback you have practised.
Company sites, landing pages, online stores, booking and enquiry portals — built to whatever the requirement is. Fast, searchable, correct on a phone, and handed over so your own team can edit the content without calling us. Hosting and ongoing support if you want it.
Storefronts built or migrated onto Shopify — theme work in Liquid rather than a pile of app embeds, product and order data moved across with the redirect map checked against your real traffic, and ERP, inventory and accounting wired in through the Admin API with reconciliation so a failed sync shows up in a report rather than as a wrong stock count.
Apps for iOS and Android from a single codebase, with native behaviour where it matters — offline handling, push, biometrics and deep links. We handle store submission, review responses and the release train, so an update is routine rather than an event.
Practical AI inside a product you already have — an assistant grounded in your own documents rather than guessing, extraction from invoices and forms, classification and summarising. The engineering that matters here is the part around the model: what it is allowed to see, what happens when it returns nonsense, and how a person stays in the loop on anything that costs money or sends a message.
For a codebase that has outgrown whoever wrote it. We start with a two-week audit: what is fragile, what is expensive, what would break under load. Then we fix it in priority order, adding tests as we go.
Three arrangements. Most clients start with the first.
Fixed fee
Five days. We interview your team, read whatever code exists, and produce a written specification with a scoped estimate. Yours to keep and take to any developer.
Best when the problem is clear but the solution is not.
Fixed scope
A defined deliverable with a milestone schedule. Two-week cycles, a deployed build at the end of each, invoicing tied to milestones rather than hours.
Best for a first version or a well-bounded feature.
Monthly
A set number of engineering days each month against a rolling backlog you control. Cancel with 30 days notice.
Best for ongoing product work and maintenance.
Rates depend on scope and timeline. Tell us what you need and we will send a figure before you commit to anything.
Detail pages on the work people most often come to us for.