What we build

Four kinds of work
that keep meeting each other.

A portal needs an integration. The integration needs a machine to answer. We kept all four capabilities in one team because splitting them across three vendors is how projects stall.

A typical architecture
Two surfaces sharing one design system and one data layermarketing siteinternal admindesign systemtokens + components, oncedata layerone API, typed
One frame, one data layer, one design system — reused by the marketing site and the admin panel.

01 / Interface

Web apps and websites

The screens people use all day, and the ones that win you the meeting.

A customer portal, an internal dashboard and a marketing site are the same problem wearing different clothes: someone arrived with a job to finish. We design and build both ends — the public site that explains what you do, and the application your team lives in for eight hours a day.

What we deliver

  • Customer portals and self-service accounts
  • Internal tools, dashboards and admin panels
  • Marketing sites and product launch pages
  • Design systems your future developers can extend

A good fit when

  • Your team keeps a spreadsheet because the software can’t do it
  • Onboarding a new customer takes a person, not a form
A typical architecture
Documents arrive, an agent drafts, a person approves, the ERP is writtenemailPDFphotoextractmatched to cataloguereviewa person, alwaysERPcorrections become examples
Documents in, structured draft out, a person approving before anything is written.

02 / Automation

AI agents and process automation

Work that used to need a person watching an inbox.

Most useful automation is unglamorous: read the document, find the order, check it against stock, ask a human when it is unsure. We build agents with that shape — narrow, observable, and wired into a review queue, so a wrong answer is caught by a person instead of a customer.

What we deliver

  • Document, email and message intake agents
  • Back-office workflow automation with human review steps
  • Retrieval and search over your own documents
  • Evaluation harnesses, so you can tell if a change made it worse

A good fit when

  • Someone re-types the same data into two systems every morning
  • You tried an AI pilot and could not tell whether it worked
A typical architecture
Three systems talking through one bridge, with drift reportedERP · stockshop · ordersfloor · movesbridgeversioned schemareconciledrift report
Every system talks to one bridge with a versioned schema, instead of six scripts.

03 / Systems

ERP, systems and integrations

Making the systems you already paid for agree with each other.

The interesting work is rarely a greenfield build. It is stock in one system, invoices in another, and a shop floor that trusts neither. We map what each system actually owns, put a deliberate integration layer between them, and migrate data with a rehearsal before the real run.

What we deliver

  • ERP setup, extension and integration
  • API layers and event pipelines between tools
  • Data migration with dry runs and rollback
  • Reporting that finance and operations both accept

A good fit when

  • Two systems disagree about the same number
  • A single integration is holding an entire rollout hostage
A typical architecture
A machine reporting to ingest, then to a ledger and a support viewmachinelocal log firstthen publishMQTTingestcharged vs dispensedledgerhealthremote command, logged
Machine application → ingest → ledger, plus the screen your support team opens.

04 / Machines

Mobile apps and connected machines

Software that leaves the office — in a pocket, or bolted to a machine.

Hardware is honest: the door either opened or it did not. We build the application on the device, the service it talks to, and the tooling your support team needs when a machine 400 km away stops behaving — logs, remote diagnostics, and a dispense history someone can actually read.

What we deliver

  • iOS and Android apps, including offline-first field tools
  • Vending and kiosk applications with payment and dispense flows
  • Device telemetry, remote configuration and diagnostics
  • Fleet dashboards for the people answering the support calls

A good fit when

  • A technician has to drive to the machine to find out what happened
  • Your device software and your back office keep separate versions of the truth

Design

Design is not a separate phase

Every engagement includes product and interface design, because the fastest way to waste an integration is to bolt a confusing screen on top of it.

From workflow to interface

  • We watch the current workflow before drawing a screen
  • Flows and states first, visual polish second
  • One design system, extended rather than redrawn per feature
  • Accessibility decided in the design, not patched in review

What you get

  • Clickable flows for the paths that matter
  • Tokens and components in code, not just in a design file
  • A written rationale for the decisions that were close calls
See this site’s design system

Our toolkit

What we reach for, and when

The right tool for the work, with a clear reason behind it. Familiar foundations that your next team can pick up.

  • 01

    Interfaces

    • TypeScript
    • React
    • Next.js
    • Astro
    • Tailwind CSS

    Static where content rules, server-rendered where data does.

  • 02

    Services and data

    • Node.js
    • Python
    • PostgreSQL
    • Redis
    • REST + typed clients

    Boring databases, explicit schemas, migrations in version control.

  • 03

    Agents and automation

    • Claude API
    • OpenAI API
    • Queues and workers
    • Evals
    • n8n

    Narrow scope, logged decisions, a human in the loop where it matters.

  • 04

    Mobile and devices

    • React Native
    • Flutter
    • MQTT
    • Linux
    • Embedded Android

    Offline-first assumptions, because the network will drop.

  • 05

    Delivery

    • Docker
    • GitHub Actions
    • Terraform-ready infra
    • Sentry

    One command to deploy; every deploy reversible.

Your code. Your infrastructure. No proprietary runtime to keep paying for.

Not sure which of these you need?

Describe the workflow. We will tell you which parts are worth building, which are worth buying, and which should stay a spreadsheet.