Software that replaces
the spreadsheet, and outlives the person who built it.
We build the systems a business runs on — custom business software, SaaS products, complex web applications, dashboards and the integrations between them. Designed around how your team actually works, written to be read by the next developer, and yours from the first commit.
You own the source, the data and the servers. There is no version of this where you cannot leave.
Need an app on the App Store or Google Play instead? iPhone, iPad and Android apps have a page of their own.
Mobile app development
What we build
Six shapes the same craft takes.
What changes between them is who uses it and what it connects to. What does not change is that the rules have to be right, the data has to be safe, and somebody else has to be able to read the code afterwards.
Custom business software
The system that replaces the spreadsheet everybody is afraid of — the one with the macros, the one person who understands it, and no backup worth the name. Quoting, scheduling, stock, orders, whatever the business actually runs on.
SaaS products
Accounts, roles, subscriptions, billing and tenancy, and the administration side nobody demos — built in from the first release, because retrofitting multi-tenancy is a rewrite wearing a hat.
Complex web applications
The kind with a login, permissions, state worth protecting and rules that cannot be wrong. Closer to software than to a website, and built as such — in the browser, so there is nothing to install.
Dashboards and reporting
Numbers people make decisions on, which is a harder problem than drawing charts: where the figure came from, when it was true, and what to do when two sources disagree.
APIs and integrations
The seam between systems that were never designed to meet — your accounting, your shop, your CRM, a payment provider — with retries, idempotency and a log you can answer a customer from when the other end is down.
Modernising old systems
The application that still runs the business on a framework nobody supports. Replaced a piece at a time, with the old one kept running beside the new until the numbers agree.
Not sure which of these your problem is — or whether it needs building at all? That is the first thing the conversation settles, and it is free.
These are wireframes and they are honest about it. A screenshot of a finished system on a studio page is either somebody else's business or a mock-up pretending not to be one, and we would rather show you the thinking.
On a desk
Numbers somebody has to defend
A dashboard is not a chart library. It is a claim about the business, and the person reading it will be asked where the figure came from — so every number carries its source and its date.
Every figure traceable to what produced it
Slow queries kept off the page render
Exports that match what is on the screen
Between systems
The part that fails at night
An integration is judged on the day the other end is down. Retries, idempotency, dead letters and a log an operator can answer a customer from — built first, not after the first incident.
Retried safely, never applied twice
Failures visible, not silently swallowed
Replayable once the far end comes back
Into production
From a commit to the live system
Every change goes the same way: tested automatically, reviewed, then released by the same steps every time — so shipping on a Friday is boring rather than brave, and a bad release is undone in one move.
Tests run on every change, not before a release
Deployed by a pipeline, not by somebody's laptop
Rolled back in one step when something is wrong
The honest part
Build it, buy it, or keep the spreadsheet.
Every studio that writes software has a commercial reason to recommend writing some. Here is how we actually decide, including the answer that costs us the project.
When you should not build it
A product you can subscribe to does it, and your process can bend to fit it
The spreadsheet works, one person understands it, and that person is staying
It would automate a process nobody has agreed on yet
The problem happens a few times a year, not a few times a day
You want it because a competitor has one, not because a task needs it
The budget covers building it but not running and changing it afterwards
When building is the right call
When the process is the advantage
The way you quote, schedule or price is what makes you different, and every off-the-shelf product would make you work like everybody else.
When three tools are pretending to be one
Data retyped between systems, exported, fixed by hand and imported again. One system, or a proper integration between the ones you keep, pays for itself in the hours it hands back.
When the software is what you sell
A SaaS product is software by definition. Accounts, roles, billing and tenancy are designed in from the first release, because adding them later is a rewrite.
And we will say which, in writing
With the reasoning, before you have paid for anything, knowing that "you do not need this" is sometimes the answer. A studio that cannot say it is a studio you cannot trust when it does not.
Describe the problem rather than the software you imagine, and we will tell you which of the three it is.
None of the following is a tier, an add-on or a line on the quote. They are what makes software somebody can still work on in three years.
The source and the data are yours
In your repository and your database, under your accounts, with the history intact. Exportable in a format that is not ours.
Hosted where you choose
Your cloud account, or our own servers — and moved between them without a rewrite, because nothing in it assumes where it lives.
Who did what, on the record
Roles and permissions from the start, and an audit trail of changes that matter — the question somebody always asks after a mistake.
Backups you have restored
A backup nobody has restored is a hope. Restores are rehearsed, so the day one is needed is not the first time it is tried.
Written to be read
By the developer after us, who may not be us. Tests where they pay for themselves, and a README somebody can actually start from.
It tells you when it breaks
Errors and slow requests reported somewhere a person looks, from the first release rather than after the first bad week.
How it goes
Five stages, and something to click by the end of the second.
Software goes wrong quietly and expensively, so the first two stages exist to make that visible while it is still cheap.
01ShapeHow the process really runs — not how the manual says it does — and what has to change. No discovery-phase invoice.
02PrototypeSomething your team can click through, shaped like your real data, before the expensive part starts.
03BuildIn slices you can use, on your repository, running somewhere you can open it from the first week of work.
04MigrateData moved from the old system and run side by side until the numbers agree — then the switch, and a handover done as a working session.
05EvolveDependency updates, security fixes and what the first months of real use turn out to need.
Straight answers
The questions worth asking before you write to us.
Buy, if a product does it and your process can bend to fit — it is cheaper, and somebody else keeps it running. Build when the way you work is the advantage, when several tools are retyping the same data, or when the software is what you sell. We will tell you which in writing, even when the answer is a subscription.
You do, from the first commit. The repository, the database and the servers are in your name, and we work inside them rather than holding them. Your data is exportable in formats that are not ours. There is no version of this arrangement where leaving is expensive.
Carefully, and more than once. The migration is written as a repeatable step rather than a one-off copy, run against your real data early, and the old system kept running beside the new one until the figures agree. The switch happens when there is nothing left to be surprised by.
Wherever suits you: your own cloud account, or our own servers, which is the other half of what this company does. Nothing in it is written to depend on where it lives, so moving it later is a configuration change rather than a project.
Usually — accounting, e-commerce, CRM, payment providers and anything else with an API. Integrations are built to survive the other end being down: retried safely, never applied twice, and logged so a person can see what happened.
Roles and permissions are part of the first design rather than a later feature. Secrets stay out of the code, every account has only the access it needs, changes that matter are recorded, and dependencies are kept current as part of the work rather than when something breaks.
We will not name a number before knowing what it has to do, and the studios that do are quoting a project that is not yours. What we commit to is a shape and a figure in writing after the first stage, and something your team can click before the expensive part begins.
Yes, and it is designed in from the first release: accounts and roles, subscriptions and invoices through a payment provider, each customer's data kept apart, and the administration side you will need on the day the first customer asks for something unusual.
Usually, and it is a large part of what we do. The first thing is an honest read of what is there — what runs, what is tested, what is abandoned — and a written answer on whether continuing, modernising in pieces or rebuilding is cheaper. We will show you the reasoning either way.
Free consultation
Tell us what it has to do. We will tell you what it is.
What the software has to achieve is worth more than a description of the screens. You get a real answer from the person who would build it — including "you do not need this", when that is the answer.