Services

We work on a small number of projects at a time. Below is what we take on and how the commercial side is arranged.

Capabilities

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.

  • React
  • Next.js
  • Astro
  • TypeScript
  • Node
  • Postgres

APIs and integrations

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.

  • REST
  • GraphQL
  • Webhooks
  • Queues
  • OpenAPI

Cloud and deployment

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.

  • AWS
  • Cloudflare
  • Docker
  • GitHub Actions
  • Terraform

Websites

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.

  • Astro
  • Next.js
  • WordPress migration
  • SEO
  • Analytics
  • Hosting

Shopify stores

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.

  • Shopify
  • Liquid
  • Admin API
  • Migrations
  • ERP sync
  • Subscriptions

Mobile applications

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.

  • React Native
  • Flutter
  • iOS
  • Android
  • App Store
  • Play Console

AI features

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.

  • RAG
  • Embeddings
  • Document extraction
  • Evaluation
  • Guardrails

Rescue and refactor

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.

  • Audit
  • Test coverage
  • Migrations
  • Performance

Ways to work with us

Three arrangements. Most clients start with the first.

Discovery week

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.

Project build

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.

Retained team

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.