Custom web software, built end-to-end.
We design, engineer and ship serious web products. The kind that have to survive a real business, a real customer base, and a real on-call rotation. No agency middle layer, no junior army — just senior craft from kickoff to handover.
Engineering as the first design tool.
We don't believe in handoff. Designers and engineers work in the same room from the first sketch, which is why our designs ship without compromise and our APIs feel obvious once you read them. We pick technology that earns its weight — React and Node by default, Postgres for structure, Elasticsearch when search has to be fast and right.
A typical engagement starts with a one-to-two-week discovery: we map the problem, the constraints, and the team you already have. We come back with a fixed-scope build proposal, an honest timeline, and a list of things we'd push back on. Then we ship — incrementally, observably, with you in the loop.
When we hand over, we hand over everything: code, documentation, runbooks, observability, and an in-house team that can keep going without us. Or we stay. Both are fine.
Four phases. No theatre.
Discovery, architecture, build, care. We move through them in order; we don't pretend they're sprints.
Discovery
One to two weeks of close reading. We sit with your team, the existing code if there is any, and the users you're building for. Output: a written brief, an honest scope, and a list of decisions we'd make differently.
Architecture
We design the system before we write it. Data model, API contracts, service boundaries, deployment shape. The diagrams are boring on purpose. Nothing surprising should happen later.
Build
Senior engineers, two-week cadences, demos at the end of each. Observability and tests are written alongside the code, not after. The thing that ships looks like the thing we designed.
Care
After launch we either hand over cleanly or stay on as a retainer. Either way, runbooks, dashboards, and a calm phone number for the night your night auditor needs us.
What we actually do.
A short list, deeply done. We'd rather be excellent at six things than mediocre at twenty.
Greenfield product engineering
New web products from blank repo to production. Discovery, design, build, deploy. The first commit and the on-call rotation come from the same team.
Legacy rescues & rewrites
The project the previous team gave up on. Incremental rewrites that don't stop the business. Strangler fig patterns, careful migrations, no big-bang releases.
Embedded engineering
We ship inside your team for a quarter or two, leave the codebase healthier than we found it, and your engineers more senior. We are explicitly not trying to become indispensable.
Integrations & event pipelines
Make the systems you already pay for talk to each other. Cleanly, observably, on contract. Webhooks that retry. Pipelines that don't lose events. Reconciliation when something inevitably drifts.
Performance, search & scale
When the catalogue grows past what a spreadsheet survives. Query planning, indexing, caching strategy. Elasticsearch tuned for your data, not its tutorial.
DevEx, CI/CD & observability
The unglamorous half. Fast pipelines, sensible environments, dashboards that actually answer questions. The thing that makes the next year easier.
Tools we keep returning to.
We pick the tool, not the trend. This is the boring, dependable set we reach for most often — we'll deviate when it earns its weight.
TypeScript · Tailwind
GraphQL · REST
Elasticsearch · Redis
Docker · GitHub Actions
Recent custom builds.
Most of our work runs under NDA. These are the ones we can talk about.
Booking engine, rebuilt
A 38-property group's booking flow, rewritten from the ground up. 2.4× conversion uplift, p95 below 600ms, and a CMS the marketing team can actually use.
Night-audit replacement
A 30-year-old desktop night auditor replaced with a web app that runs on the same hardware, in the same workflow, twice as fast and with a real undo.
Logistics search, faster
Replaced a Postgres-only catalogue with a hybrid Postgres + Elasticsearch model. 12× faster search across 4M SKUs, query latency under 80ms at p99.
Reconciliation pipeline
An event-sourced reconciliation pipeline for a payments platform handling ~€420M/year. Zero unresolved breaks across the first 18 months in production.
Related services.
Custom development rarely shows up alone. These usually come with it.
Have something you'd like
us to build?
Tell us a little about what you have in mind. We reply within two working days, in plain language, with an honest read on whether we're the right team.