Skip to content

Services

The work we take on, and what each piece involves.

Projects rarely fit one heading. Pick the ones that sound like your problem and we will tell you which others it will touch before we quote.

01 / product

Web applications

Typed from the database to the button. Server-rendered, fast on first load, and built so the second feature is as easy to add as the first.

We build the application layer people actually use: dashboards, portals, admin tools, and customer-facing products. Routing, authentication, permissions and forms are treated as core engineering, not as a template to fill in.

  • Server-side rendering and streaming
  • Authentication, roles and permissions
  • Design systems and component libraries
  • Accessibility and keyboard support

02 / desktop

Desktop applications

The same product as a real desktop app for Windows, macOS and Linux, packaged as an installer with updates that land on their own.

Some work belongs on the machine: local files, hardware, long-running background processes, or simply working when the network does not. We build desktop applications on Tauri and Electron, so the interface shares code with the web product while the parts that need the operating system get it.

  • Windows, macOS and Linux builds
  • Packaged installers and auto-update
  • Filesystem, hardware and OS integration
  • Offline-first local storage

03 / mobile

Mobile and installable apps

Phone and tablet builds, plus progressive web apps that install straight from the browser and keep working offline.

Not every product needs a store listing. We start from what your users actually have to install and where they use it, then ship either a packaged mobile app or a progressive web app. Both are built from the same codebase as the rest of the product, so a fix lands everywhere at once.

  • iOS and Android builds
  • Progressive web apps and install prompts
  • Offline caching and background sync
  • Push notifications

04 / commerce

Online stores and checkout

Headless storefronts where the catalogue, cart and checkout are built as a real application rather than bolted onto a template.

Selling online stops being simple the moment your pricing, stock or fulfilment does not match what an off-the-shelf platform assumed. We build the storefront and the order model ourselves against a headless backend, so the rules your business actually runs on are in the code rather than worked around. Card data stays with the payment provider; everything either side of it is ours to get right.

  • Headless storefronts and catalogues
  • Cart, checkout and payment providers
  • Stock, pricing and tax rules
  • Orders, fulfilment and refunds

05 / platform

APIs and services

HTTP and realtime interfaces, background workers, and scheduled jobs. Documented, versioned, and safe to call twice.

Behind most products sits work that has to happen reliably whether or not anyone is watching. We design the service boundaries, the retry behaviour, and the queues in between, then make the whole thing observable.

  • REST and typed RPC endpoints
  • Background jobs and scheduling
  • Third-party integrations and webhooks
  • Rate limiting, idempotency and audit trails

06 / data

Data and storage

PostgreSQL schemas with migrations you can run forward under load, plus the search, caching and object storage around them.

The schema outlives every framework choice, so it gets designed first. We model the domain properly, keep migrations reversible where they can be, and make sure reporting reads from the same source of truth the product writes to.

  • Schema design and migration strategy
  • Full-text and faceted search
  • Caching and read models
  • Backups, retention and restore drills

07 / realtime

Realtime and collaboration

Multi-user editing, presence, and live updates, with conflict resolution handled rather than hand-waved.

Collaborative features fail in ways request/response apps do not. We build them on CRDTs and persistent sockets, with offline behaviour and reconnection designed in from the start rather than patched later.

  • Collaborative editing on CRDTs
  • Presence, cursors and activity feeds
  • WebSocket infrastructure and reconnection
  • Offline-tolerant clients

08 / ai

AI features and integration

AI-powered features in the product you already have: assistants over your own data and agents that call your APIs, with guardrails, cost limits and a human in the loop where it counts.

We treat a model the way we treat any other third-party dependency that can fail: constrain its output to a schema, validate what comes back, cap what a request can spend, log every call, and design what happens when it is wrong. Most of the work is retrieval, permissions and evaluation, which is ordinary software engineering and is where these projects usually come apart.

  • Provider integration and streaming interfaces
  • Retrieval-augmented assistants with citations
  • Agents, tool calling and MCP servers
  • Evals, guardrails and cost controls
How we build this, and what the terminology means

09 / infra

Infrastructure and deployment

Containerised builds, TLS, backups, monitoring and rollback, set up before launch day rather than after the first incident.

We deploy what we build. That means reproducible images, a reverse proxy that terminates TLS properly, secrets kept out of the repository, and logs and traces you can search when something looks wrong. Self-hosted or cloud, whichever suits the budget and the compliance story.

  • Docker images and compose stacks
  • Reverse proxy, TLS and DNS
  • CI pipelines and release process
  • Logging, tracing and error reporting

10 / managed-it

Managed IT and support

The systems your business runs on rather than the ones it sells: networks and Wi-Fi, Microsoft 365 and identity, backups you have actually restored from, cameras and access control, and the servers still sitting in the building.

This is the operational half of the work, and it is a monthly agreement rather than a project. We keep an asset register, monitor the things that give warning before they fail, patch on a cadence, and rehearse restores instead of assuming them. Administrative accounts stay in your name, and the documentation is written so that leaving us is a decision rather than a project.

  • Networks, firewalls and Wi-Fi
  • Microsoft 365, Entra ID and MFA
  • Backup, offsite copies and restore drills
  • Cameras, access control and on-premise servers
What we manage, and where we work on-site

11 / migration

Migrations and rescue work

Moving off a legacy system, or picking up a codebase someone else left behind. We map what exists before we change it.

Inherited systems are normal. We start by reading the code and the data, write down how it actually behaves, and then move it in steps that can each be verified, rather than betting the business on one cutover weekend.

  • Codebase and data audits
  • Incremental cutover plans
  • Content and schema migration tooling
  • Documentation and team handover

Research and development

Two areas we are researching, and expect to offer in future.

Neither is a service line today and we are not taking bookings for either. If you have an idea, a project or a problem that lands in one of them, bring it to us anyway and we will consider it on its merits.

Building the bench

Microsoldering and device repair

Board-level work on modern electronics: component-level diagnosis, reflow and rework under a microscope, connector and port replacement, and recovering data from boards that no longer power on. We are assembling the bench and proving the process on our own hardware first.

Prototyping

Hardware and connected devices

Devices that run their own firmware and talk to software we already know how to build: sensors and controllers, the embedded layer in Rust or C, and the desktop or web side that provisions, configures and monitors them. Prototypes at this stage, not a product line.

We would rather tell you where we are actually up to than quote for work we have not proved. If we are not far enough along to be useful to you yet, we will say so and tell you what would change that.

Engagement models

Three ways to work with us.

Whichever shape fits, you get the same engineers and the same reporting.

Project build

A defined scope, milestones and a fixed price per milestone. Best when you know roughly what needs to exist and want it delivered and deployed.

New products, rebuilds, internal tools

Retained engineering

A recurring block of engineering time each month, prioritised with you. Best when the roadmap moves and you need capacity rather than a contract.

Growing products, ongoing platform work

Review and advice

A focused audit of an existing codebase, schema or deployment, written up with prioritised findings and what we would do about each one.

Inherited systems, pre-launch checks, due diligence