Skip to content
ISSUE / 19 9 MIN READ · PRACTICE

The product had fit. The go-to-market didn't.

A cargo documentation platform in continuous production since 2003, live fleet-wide, and effectively unbuyable by anyone outside one deployment. Five decisions, and what each one replaced.


From proof to reach.

FORWARD DEPLOYED ENGINEERING · MARITIME & TRADE · EST. 2026 — LONDON

Most of what gets called product-market fit is a claim about the product. It works, people use it, they renew.

Ladn had that, and had had it for a very long time. In continuous production since 2003. Live fleet-wide at a leading breakbulk carrier. More than 240,000 bills of lading issued, across 555 ports, worked on by 1,052 agent users at 257 agency companies. Three customs regimes implemented with a local fallback everywhere else. Two decades of break-bulk edge cases already solved — the kind you cannot buy, design around or catch up to.

None of that is a go-to-market.


The two fits

Product-market fit is not go-to-market fit. One is whether the thing works. The other is whether anyone outside the room can buy it.

The second question was unanswered here, and the symptoms were specific rather than vague. The name belonged to a single deployment and could not carry the product into the wider industry. The proposition led with the platform rather than with the one thing only this product does. The price was a conversation, which meant every prospect started from zero and procurement had nothing to evaluate. And a great deal of what the company believed about itself had never been checked — which is fine internally and fatal the first time a sceptic in a procurement meeting asks you to demonstrate a sentence.

A product can be finished and still be unreachable. Those are different problems, they have different fixes, and mistaking the first for the second is how a business with real proof stays stuck at one customer.

What follows is the five decisions that closed it. We are publishing the decisions rather than the diary, because the diary is the client's and the decisions are the method.

A five-row ledger of the decisions taken on the Ladn engagement, each showing what it replaced: claims from asserted to statused, the lead from the platform to the one thing only it does, the name from one deployment to the whole industry, the price from on request to on the homepage, and the identity from a brand book to three files.
FIG / 01FIVE DECISIONS, AND WHAT EACH ONE REPLACED

Decision one: a register before a word of copy

Nothing was written until every number, capability claim and customer reference sat in one document with a status against it. Five statuses — verified, awaiting, pending, blocked, retired — and one rule governing the set. If a claim is not verified in the register, it does not ship externally. Not on the site, not in the deck, not in an email, not in a live conversation.

Two properties make that a tool rather than a spreadsheet. It makes "can we say this" answerable by a lookup instead of an argument, which removes the meeting. And it carries a maintenance rule that stops it rotting: change the status in the register first, then propagate. One register, no drift.

What surprises people is the direction it works in. A claims register is not a machine for collecting proof points. It is mostly a machine for removing them. Claims came out: a partner integration that could not be substantiated, a white-label precedent that predated the platform's own acquisition, a jurisdiction count that was one higher than the implementations justified. Every removal made the remaining set harder to attack.

Finding that out before you build the website is the cheap version. Finding it out afterwards, in front of a buyer, is the expensive one.

A five-row table of claim statuses: VERIFIED, AWAITING, PENDING, BLOCKED and RETIRED, each with a one-line definition, under the rule that a claim not verified in the register does not ship externally.
FIG / 02THE REGISTER, AS IT GOVERNED THE ENGAGEMENT

Decision two: lead with the thing only you do

The platform runs the whole documentation chain, booking to customs. That is true, it is the reason the product is defensible, and it is the wrong opening line — because every competitor in the set describes a platform, and a buyer cannot tell two platforms apart from a sentence.

One capability in the chain has no equivalent anywhere: the system reads the Mate's Receipt, scan and all, reconciles it line by line against the draft Bill of Lading, and holds the compliance gate before customs. Reality against the contract, checked automatically, with a human confirming.

The demo shows the version of this that happens most: a bill declaring 1,704,600 kg against a receipt recording 1,074,600 kg. Two digits transposed, 630,000 kg of cargo, and every other field on the document matching perfectly. Nothing about that bill looks wrong. The gate holds it anyway, and one person decides which number is true before it can be issued.

So the hero became "the first cargo document that checks itself," and the platform moved behind it. Reconciliation leads; the chain is the container.

The same decision, applied twice more. Age stopped being a headline — "in continuous production since 2003" is a claim about operation and answers "is this real?", where "a twenty-year-old platform" makes age a property of the artefact and hands the buyer the objection you use on everyone else.

And the word AI came out of the positioning statement entirely. The product lives at ladn.ai, so a reader will notice the tension, and it is worth being exact rather than quiet about it. A domain is an address. A positioning statement is a promise. The address already carries the signal, which is the argument for the copy carrying none — say a thing twice and you earn it once. So AI is named in the AI section and nowhere earlier, and when it is named it is named narrowly: the model extracts the receipt to a structured object, and the match against the record is deterministic code. That sentence turns a worry into a control. It only works if you have not already spent the reader's patience on the label.

A screen from Ladn showing a Mate's Receipt reconciled against its Bill of Lading, with a gross-weight mismatch flagged, the bill held, and one decision outstanding before it can be issued.
FIG / 03THE ONE THING NOTHING ELSE IN THE CATEGORY DOES

Decision three: a name that belongs to the business

The old name was attached to one deployment. Whatever its history, a name that cannot travel past a single customer is a ceiling on the go-to-market, and the ceiling was the problem we were hired to remove. Renaming was not a branding exercise dressed up as strategy. It was the precondition for selling to the rest of the industry.

The identity that came out of it is a drawn logotype rather than set type — four letterforms built from straight strokes on a constant stem, with a square terminal stop. It works at twenty-six pixels in a header and it will work in one colour on a printed bill of lading, which matters more than it sounds: this product's output is a legal document that reaches customs authorities, banks and counterparties, and gets printed, scanned and filed for years.

The palette is a putty ground, white panels, near-black ink, and two reds that never do each other's job — one is a field that type sits on, the other is the only red allowed to be type. Corners are square everywhere and nothing carries a shadow, so rules and hairlines do the work. And status is never a colour: held is bold, cleared is regular, rejected inverts the row. A document that will be printed, photocopied and faxed cannot afford a state you can only see in colour.

An identity specimen for Ladn: the drawn LADN. wordmark on a white panel, above five colour values — a putty page ground, white panels, near-black ink, vermilion used only as a field, and a warmer red used only for type — under the rule that status is never a colour, so held is bold, cleared is regular and rejected inverts the row.
FIG / 04TWO REDS, TWO JOBS. STATUS IS NEVER A COLOUR.

Decision four: publish the price

The position we inherited was "talk to us," and there were real arguments for it. A public unit price anchors procurement on the unit. It hands competitors your number. It is the safe answer and almost everyone in enterprise maritime software takes it.

We published instead. A per-bill rate that steps down as volume grows, billed marginally — each band charged at its own rate, so the effective price is the blend and a larger fleet visibly pays less per bill. No commitment, no seat licences, no minimum. A calculator on the page, so the buyer does the arithmetic instead of requesting it. And AI document parsing passed through at provider cost, and said to be passed through at provider cost, because third-party model pricing moves independently and pretending otherwise builds a number that breaks later.

The rates themselves are on the homepage. They are not in this piece, because a live price card can be revised on a Tuesday and an article cannot.

The reasoning is go-to-market, not transparency as a virtue. A product nobody can price is a product that needs a meeting before it can be considered, and a meeting is the most expensive filter in the funnel. Publishing moves the qualification earlier and does it for free. It also does something quieter: it makes the buyer's own arithmetic possible in the room, which is where a marginal ladder beats a tier list — nobody has to be told what growing will cost them.

A flat annual option sits beside it, for the buyer whose documentation sits in an IT budget rather than an operations one. Same product, different shape of line item.


Decision five: build the identity as three files

An identity that lives in a brand book is a description. This one is a design layer, three files deep.

A shared token file — around 120 custom properties covering colour, type, radius and spacing, with light and dark defined in the same place. A shared component shell, around 900 rules covering the rail, tables, chips, cards, modals, drawers and the screen the product exists for. Then a skin per product, layered last, around 300 lines carrying typography and corners and nothing else. Zero layout, zero behaviour.

That structure has one consequence and it is the whole point: re-skinning a product is overriding an accent group and a brand mark. A day, not a quarter.

A three-layer diagram: a shared token layer of around 120 properties at the base, a shared component shell of around 900 rules above it, and two per-product skins of around 300 lines each branching on top — one for Ladn, one for a second product — carrying 41 screens between them.
FIG / 05TWO PRODUCTS, ONE SPINE

What it cost us

Here is the part that makes this a position rather than a nice sentence.

Both of those last two things — the register and the design layer — survived contact with a second product from the same company, serving an entirely different part of the industry, with different buyers and a different sales motion. Forty-one screens now run on that design layer. Twelve are Ladn's. Twenty-two belong to the second product. Seven are a public demo. All of them sit on the same token file and the same component shell, with a skin file each where they diverge. The second product did not get a design system built for it. It got the accent group overridden.

The register travelled the same way and more quietly. On the second engagement it arrived as a format rather than a blank page, which meant the argument about what the five statuses should be — the one that took a fortnight the first time — took an afternoon.

Nobody set out to build a reusable asset. It came from doing the first one properly and then refusing to do the second one from scratch.

If the second engagement genuinely starts from what the first one left behind, the second engagement is worth less. Fewer days, a smaller number on the invoice, and a client who can see exactly why. Every incentive in professional services runs the other way, which is precisely why so little accumulates in it.

We think that trade is correct, and not out of generosity. A firm whose capacity is a fixed bench has to keep the bench fed, and engagements that have to stay open are engagements that stop being honest. We would rather be the vanguard than the garrison.

The failure mode deserves naming, because it is live rather than theoretical. Three engagements in, the layer could turn out to be three bespoke builds with nothing genuinely shared, and the word would be doing the work the asset should be. The check is unglamorous and it is the one we run: when the next engagement starts, how much of it already exists. If that answer stops improving, the claim is dead and the honest thing is to stop making it.


If you are buying this, ask for three things

Not a framework. Three questions, and they work on us as well as on anyone else you are considering.

What is the part you built, and can I see it. Not the deck about it. The thing.

Who does it land in when you go. A named person with a job, not a team and not a shared drive.

When did the engagement end, and what was still true ninety days later. A firm that cannot answer the third question has never actually left.

Ladn is live at ladn.ai, including its pricing, which sits on the homepage rather than behind a form. The second product goes on the record when it ships, not before.

START

Forty-five minutes. Bring the constraint.

Tell us where the model is bending. We'll say what we'd do, and whether we're the right people to do it.

WHAT DO YOU NEED?
LONDON — GMT TAKING ENGAGEMENTS