Skip to content

FOR PRODUCTS OLDER THAN THE TEAM THAT MAINTAINS THEM · BROWNFIELD · MODERNISATION

The cost isn't the bug you fear.
It's the ten features you never attempt

No outage, no crisis — just a team that started estimating in weeks instead of days, because nobody can see the blast radius any more. We read the system, measure it, and hand you a fixed price to change it. Or a written don’t.

Book a 30-minute triage call

Free · 30 minutes · No sales sequence · Written quote within 48 hours

SPECIMEN · BLAST RADIUS REPORT

“What breaks if we change PricingService?”

WHAT THE TEAM EXPECTED · 3 PricingService billing-cron · NO TESTS

14 services

ACTUALLY IN THE BLAST RADIUS

  • ● in blast radius
  • ○ untouched
  • ◎ no tests

ACT I

THE INHERITANCE

DAY 0

The system outlived everyone who knew why it works.

Maybe it arrived with a handover — a Slack channel and a half-finished README. Maybe you built it yourselves, and the two people who made the real decisions have since retired. Either way, what ships today is running code with no map — and running code without a map is not an asset, it's a hostage situation.

“Everyone starts calling it legacy — as if the code got worse. It didn't. The knowledge left.”

THE PATTERN THIS PAGE IS ABOUT

ACT II

THE FREEZE

WEEK 1

Nothing has shipped in five weeks, and nobody can say why.

There was no outage and no crisis. The team simply started estimating in weeks instead of days, because every change might break something invisible. Caution is rational when you can't see the blast radius. The cost isn't the bug you fear — it's the ten features you never attempt.

FEATURES MERGED PER MONTH · THE SLOPE NOBODY PLOTS
THE MONTH BEFORE THE HANDOVER −83% IN EIGHT MONTHS 12 JAN 11 FEB 9 MAR 8 APR 6 MAY 5 JUN 3 JUL 2 AUG

By the time this curve is obvious on a dashboard, it has been true for two quarters.

ACT III

THE DRAWING

WEEK 2

So we draw it. Every path, including the ones nobody mentions.

Two weeks of reading, measuring and asking uncomfortable questions. Not a rewrite proposal — a picture. Where the traffic actually goes, which service has no tests, what breaks when you change the thing everyone is afraid of. You end up knowing your own system better than you did before we arrived.

FIG. 1 · WHAT A TEN-DAY SPRINT HANDS BACK SPECIMEN · A COMPOSITE SYSTEM, NOT A PAST CLIENT
WEB API POSTGRES billing-cron QUEUE 41% OF TRAFFIC NO TESTS · NO OWNER BELIEVED RETIRED. STILL WRITING.

HOW WE KNOW WHAT WE KNOW · EVERY LINE ON THAT DRAWING CARRIES A TAG

OBSERVED
Read out of the code and its history. Churn, ownership, what changes together. Nobody had to remember it.
MEASURED
Taken off the running system in week two. Traffic, errors, what the revenue path actually touches.
ASSERTED
The team told us and we could not verify it. It goes on the drawing in this colour, and it is never underwritten.

You can draw this yourself. What you cannot do is put a fixed price under it and sign.

ACT IV

THE NET

WEEK 3

Before anything is automated, we make the system safe to break.

This is the part most people skip, and it is the reason most automation stories end badly. A model let loose on a system with no characterization tests doesn't save you weeks — it produces regressions nobody can trace back. So the net comes first. It is human work, it is quoted separately, and it is not optional.

CI
A pipeline that goes green, on every branch, without anyone nursing it.
CHARACTERIZATION TESTS
Tests that pin down what the system does today — not what the docs claim it does.
STAGING
An environment close enough to production that a passing test means something.
FIG. 2 · WHERE THE NET GOES FIRST · RANKED, NOT CHOSEN SAME SPECIMEN · SCORES FROM THE METHOD, NOT FROM A CLIENT
1 PricingService 7.5
No tests, no owner, still changing 41 times a quarter
2 Public API 1.4
96% of requests. Unit tests, but nothing pinning behaviour
3 billing-cron 0.8
Measured live. Believed retired. Nobody mentioned it

The list is computed, not negotiated: how much depends on it, times how often it changes, divided by whatever protects it. One rule overrides the ranking — anything measured live with no tests and no owner joins whatever it scores. That is how billing-cron got in. Six is the ceiling.

Until all three exist, no agent touches your code. There is no version of this engagement where that rule bends.

AN INTERRUPTION, HALFWAY THROUGH

You can stop reading here. A 30-minute call does the first two acts for your system, out loud.

ACT V

THE FIRST CHANGE

WEEK 5

A change ships on a Tuesday afternoon. Nothing breaks.

Not a heroic rewrite — a small, boring, test-gated change to the service everyone was afraid of. That is the whole point. Models draft inside narrow tasks; a human reads every diff before it merges; deploys stay manual. The team watches it go out and realises the freeze is over.

THE PATH THAT CHANGE TOOK · SEVEN STEPS, THREE OF THEM HUMAN
  1. SPEC
  2. HUMAN GATE DESIGN + ADR
  3. TASKS
  4. DRAFT
  5. AUTO REVIEW
  6. HUMAN GATE PR REVIEW
  7. HUMAN GATE RELEASE

ACT VI

THE HANDOVER

MONTH 3

You keep the keys, the map, and the ability to fire us.

Every artefact lives in your repository, in a format your team can edit. The runbook, the decision records, the diagrams, a recorded walkthrough, thirty days of warranty. If you want us monthly afterwards, there's a retainer with a written value report. If you don't, nothing we did depends on us still being here.

RUNBOOK
How to operate it at 3am, written for the person on call.
DECISION RECORDS
Every architectural choice and the reasoning behind it.
DIAGRAMS
Editable, in your repo. Not a PDF, not a screenshot.
WALKTHROUGH
A recorded session with the people who will maintain it.
30-DAY WARRANTY
We fix what we broke, at no charge, no argument.

THE STORY ENDS THERE · THE TERMS START HERE

Everything below is the paperwork: what it costs, what we sign, what you can check, and why the cheaper options are cheaper.

You do not need any of it to book the call. It is here because you will need it before you sign anything, and hiding it would waste your time and ours.

€750
BLAST RADIUS REPORT · 2 DAYS
€9,500
DISCOVERY SPRINT · MOST EXISTING SYSTEMS
+20%
BUILD OVERRUNS WE ABSORB
07 PRICE

Two things you can buy today. Everything after that is priced before you commit to it.

You never have to work out which category you are in. That is the job of the free triage call, and the answer arrives in writing within 48 hours.

WHAT IT COSTS TO GET TO EACH DECISION · ◆ = YOU CAN STOP HERE

  1. · €0 TRIAGE
  2. ◆ €750 BLAST RADIUS
  3. ◆ €9,500 DISCOVERY SPRINT
  4. · €3,500+ SAFETY NET
  5. ◆ €12,000+ BUILD MILESTONE
  6. · €3,000+ / month RETAINER

START SMALL

€750 2 DAYS · ASYNC

Blast Radius Report

Name the one change your team is afraid of. We tell you what it actually touches, what has no tests, and what breaks. One page, one diagram, one verdict.

Credited in full against a Discovery Sprint booked within 30 days.

Read-only access to one repository. Nothing is installed and nothing touches production.

THE MAIN THING

€9,500 1—2 WEEKS

Discovery Sprint

Your system read, measured and drawn, ending in a fixed price to change it — or a written don’t. The artefacts land in your repository either way.

That is the price for most existing systems. Nothing built yet is €6,500; legacy or a rescue is €11,500. Which one you are is the triage call’s job, not yours — your exact number arrives in writing within 48 hours, before you commit to anything.

Paid in two halves. Week one reads the system and hands you the map; week two stands it up, measures it, and prices the work.

IF YOU DECIDE TO BUILD — ALL OF THIS IS PRICED INSIDE YOUR SPRINT, NOT INVENTED AFTERWARDS

  • Safety net €3,500 — €6,000 Once, before any build.
  • Build milestones €12,000 — €25,000 each Fixed on signature. Underwritten to +20%.
  • Retainer €3,000 — €5,500 / month Optional. Keeps the map true as the system moves.

FIXED ON SIGNATURE · 40% UP FRONT · NEVER DISCOUNTED — A SHORT BUDGET MEANS LESS SCOPE, NOT A LOWER RATE

08 THE UNDERWRITE

We sign the build price. Overruns inside the map are ours, up to +20%.

Every milestone is fixed on signature and quoted from what the sprint actually measured. If we misread your system, absorbing that is our problem — which is the only reason two weeks of reading is worth paying for.

What it covers
Anything inside the scope the sprint mapped. A misread on our side is our cost, not a change request in your inbox.
What voids it
Verbal scope changes, blocked repository or staging access, and client-side dependency changes after signature. Printed on every quote.
Why we can offer it
Because we read the system for two weeks first, and because no single milestone is ever quoted above €25,000.

An agency quoting from a discovery call cannot do this, because it has not read the system. An agent cannot do it either, because when it is wrong there is nobody to bill.

09 THE ALTERNATIVES

You are not choosing between us and nothing. You are choosing between five options.

Four of them are cheaper than we are. Here is an honest account of what each one actually gives you, written so you can disqualify us quickly if one of them fits better.

YOUR OPTIONS READS THE SYSTEM MEASURES IT RUNNING SAYS NO SIGNS THE PRICE DOES THE GRIND
Doing nothing for another quarter ✕ ✕ ✕ ✕ ✕
Your own team with an AI agent ◑ ✕ ✕ ✕ ✕
An agency that uses AI ◑ ✕ ✕ ✕ ✕
A traditional software agency ✕ ✕ ✕ ◑ ✓
Keel ✓ ✓ ✓ ✓ ✓

◑ means partially — a capable team or agency will produce diagrams, and they will be roughly right. Any one of these five columns is cheap to claim on its own. The price only holds because all five are true at the same time.

Doing nothing
The most common choice, and never really a decision — a deferral. Not free either: the drag above is already on your payroll, it just has no line item.
Your own team with an AI agent
You should do this, and we use the same tools ourselves. It will draw a decent diagram in an afternoon. It cannot stand your system up and measure it, tell you not to do the thing you asked for, or sign a price it is liable for. And the people who built the system cannot see it — nor say what they see without political cost.
An agency that uses AI
The closest competitor, and the difference is not tooling. They bill for capacity, so their incentive is more code; we bill for a decision at a fixed price, so ours is less. They point models at the system before a spec or a test exists to catch them. We point them at narrow, test-gated tasks after both do. And they skip the safety net, because it looks unbillable.
A traditional software agency
Sells capacity, paid by project size, so the project grows. Most are clustered on greenfield MVP work, which is commoditising. Reading an existing system and changing it safely is a different job.
10 HOW YOU CHECK US

Every claim on this page is checkable. Here is how you check it.

Process claims are worth nothing on their own — every agency makes them and every buyer discounts them to zero. So we publish the rules, open the delivery log while the work is running, and print our own numbers every quarter, including the ones that make us look bad.

Before you buy
The rules, published in full: three attempts then a human takes over · secrets never enter an agent’s context · production deploys stay manual · nothing merges into auth, payments or data deletion without a human · no agent touches an existing system before the safety net exists.
While we work
Your task log is readable by you, and the weekly report carries the same numbers we use internally. Expect a high needs-human rate on an existing system — that is the designed distribution. Zero would mean we were lying.
After handover
Every gate leaves a receipt and you keep all of them: an ADR, a review record, a release note and a demo recording.

WHAT THE RECEIPTS LOOK LIKE · FORMAT IS REAL, CONTENT IS ILLUSTRATIVE

ADR-014 · ACCEPTED

Context
Pricing rules live in two services and
nobody knew which one wins.

Decision
Keep both. Add a contract test at the
seam and make the winner explicit.

Consequence
No rewrite. Release lock removed.

PR #218 · HUMAN REVIEW

reviewer   architect (human)
comments   3, one blocking

blocking   touches auth/session.ts —
           needs a second pair of eyes
           per SEC-4

resolved   14:22, merged after fix
deploy     manual, 15:05

task-log.csv

date,proj,type,task,att,result
06-11,acme,T2,#218,2,green
06-11,acme,T2,#219,3,needs-human
06-12,acme,T2,#220,1,green
06-12,acme,T2,#221,3,needs-human
06-13,acme,T2,#222,1,green

first-pass green   3 / 5
needs-human        2 / 5

OUR OWN NUMBERS · PUBLISHED EVERY QUARTER · Q3 2026

WHAT WE MEASURE ABOUT OURSELVES THIS QUARTER
Discovery Sprints delivered
—
Sprints that ended in a written “do not proceed”
—
Build milestones closed at the signed price
—
Milestones where we absorbed the overrun, and how much
—
Milestones delivered late
—
Engagements where the safety net was skipped
—

No engagements yet, so the column is empty. It publishes from the first sprint onward and it is not curated — a milestone we ran late on appears here the same quarter it happens. Milestones where you signed a scope change are reported in a separate column, so “closed at the signed price” cannot be inflated by change requests.

What you see: your task log, the weekly report, every gate receipt, CI results. What you don’t: our internal retrospectives, other clients’ data, our margins, raw model transcripts. These figures are operational data, not a service-level guarantee — the only contractual promise on this page is the underwrite.

11 PROOF

We publish the method on systems nobody paid us to look at.

One open-source system a month, torn down in public: the drawings, the ranked risks, and one number measured from the system actually running. Including the ones where the honest answer is that nothing needs rewriting.

⚠ PLACEHOLDER — REPLACE EACH CARD WITH A PUBLISHED TEARDOWN BEFORE LAUNCH

  • TEARDOWN 01 00% Share of traffic reaching a service the maintainers believed was retired. VERDICT — REPLACE
  • TEARDOWN 02 0.0× Gap between the documented request path and the real one. VERDICT — REPLACE
  • TEARDOWN 03 0 Rewrites recommended. The architecture was fine; the release process was not. VERDICT — REPLACE

There are no client logos on this page. When there are three we will put them here, and not before. Until then the teardowns are the evidence, and you can check every one of them yourself against the repository it came from.

12 BEFORE YOU BOOK

The five questions everyone asks.

Why not point Claude Code at our repo ourselves?
You should — it will draw a decent diagram in an afternoon, and we use the same tools inside our own process. What it cannot do is stand your system up and measure where the time actually goes, tell you not to do the thing you asked it for, or sign a price it is liable for. If a diagram is all you need, don’t hire us.
What access do you need?
Read access to a repository that stays in your organisation, least privilege. Secrets never enter an agent’s context. Production deploys stay manual, always.
Do we have to move to your stack?
No. On an existing system the stack is yours and we work inside it — that is the entire job.
What if the sprint says don’t proceed?
Then it says that, in writing, and you keep every artefact. Finding out in week two is considerably cheaper than finding out in month six.
Who actually writes the code?
One human architect owns the design and reads every diff before it merges. Models draft inside narrow, test-gated tasks. One accountable person, not a rotating bench.
Book a 30-minute triage call

Free · 30 minutes · Written quote within 48 hours

NEXT STEP

Thirty minutes.
No deck required.

Bring the repository, the symptom, or just the frustration. The first five minutes classify the work; by the end you will know what a Discovery Sprint would cover, what it would cost, and whether we think you need one.

NO SALES SEQUENCE · NO OBLIGATION · WRITTEN QUOTE IN 48 HOURS · WEEK ONE IS STOPPABLE

keel /kiːl/ NOUN

  1. 1 The backbone of a hull. It is laid first, before anything anyone will ever see, and every frame is measured from it.
  2. 2 A ship's age is counted from the day her keel was laid — not from her launch.

Your system has one too. It was there the whole time, holding the shape of the thing. Nobody had ever drawn it — which is why nothing can be measured from it.

DECK BASELINE KEEL STATIONS 0—4
PREPARED BY
MEHMET YALCINKAYA

ARCHITECT · KEEL

SCOPE
FIXED ON SIGNATURE
DATE
ON BOOKING
APPROVED BY