SPEC.04 · TERRAIN File 04 / 07

The Domain Cliff

On the place where horizontal SaaS ends and irreducibly specific terrain begins.

The Geography

Hutton's Unconformity at Siccar Point, Scotland — a cliffed coastline in cross-section, with stratified terrain pitching downward where the upper surface gives way.
Siccar Point — the rock face that taught a century how to read the ground. A smooth upper surface runs out for a stretch, then breaks into older strata that tilt and fall away beneath it. The geography is not borrowed for effect; it is the original discipline of trusting that terrain has a structure deeper than its surface lets on. Software has the same shape at a different scale. The operator who can read the section is the one who sees where the plain ends before he walks off the edge of it. — Source: Hutton's Unconformity, Siccar Point, Wikimedia Commons

There is a coastal plain in software, and it is enormous. It stretches across most of what the venture industry has funded for fifteen years. The plain is smooth, well-trodden, easy to build on, mild in its weather. The same toolkits work everywhere — CRMs, billing systems, scheduling apps, dashboards, workflow engines. The categories differ; the geology underneath is the same. A row in a table. A user. A timestamp. A status field. A webhook. A retry. The plain is generic by design, and the genericness is the source of its leverage. Build the right primitive once and it composts into a thousand businesses.

The plain has a name. We call it horizontal SaaS, and for a generation it has been the default destination for ambitious platform thinking. The instruction has been consistent: abstract the domain, expand the addressable market, let the tool find its surface area. Find what is generic in the world, and serve it.

But the plain ends. Walk far enough in any direction and the ground tilts, then breaks open into something else — a coastline of cliffs falling into terrain that does not behave the way the plain behaves. Past the cliff there are mountains that refuse to generalise, valleys with their own weather, rivers that change name every few miles because the people living along them know the difference. This is the irreducibly specific terrain of deep-domain industries: cinema exhibition, clinical medicine, aviation maintenance, mineral extraction, defense logistics, agricultural genetics, commercial construction, container shipping. Each has its own physics. Each will eat generic tooling and spit out the bones.

Most of the software industry has never walked to the cliff. It has spent the whole era building on the plain, where the rewards are predictable and the abstractions hold. The next generation of platform-defining work — the work that compounds through the AI era and shapes the next thirty years of operational software — happens past the cliff. Not on it.


What Stripe Got Right, and Why It Travels Poorly

A nineteenth-century section of the north wall of the Grand Canyon — layered strata and the structural relationships between formations of different ages laid bare in cross-section.
A section drawn from the Grand Canyon's north wall — the earth shaped by processes too slow and too vast for any single observer to witness, so the structure of the ground is the only honest record of what the ground has done. The domain cliff has the same property. The operator who has lived inside an industry for fifteen years feels where it breaks underfoot; the founder on the plain, looking outward, sees only continuous slope. Stripe read its own terrain correctly because the team had stood on it long enough to know which way the section ran. — Source: Section of the North Wall of the Grand Canyon (Wellcome Collection), on Wikimedia Commons

There is exactly one company you have to invoke to make this argument legible, and it is Stripe — patron saint of horizontal abstraction, the company whose playbook every B2B founder absorbed by osmosis. Make it generic. Hide the mess underneath. Ship a beautiful seven-line charges.create and let the developer experience pull the platform forward. The playbook worked because Stripe read the geography correctly. Payments live on the coastal plain.

Here is the part almost nobody else gets right. The reason Stripe's abstraction worked is not that the team was unusually good at abstracting — though they were — but that the underlying primitive genuinely is generic. A charge is a charge. The card networks categorise the merchant — there is a code that means cinema and a code that means veterinary clinic — but the primitive they actually move is indifferent to it: authorize, capture, and refund clear the same way whether the line item is a seat or a spay. Merchant of record, payment method, authorization, capture, refund — these generalise across industries because the financial rails were standardised before Stripe arrived. Stripe did not invent the abstraction. It inherited a domain-agnostic financial protocol and built a tasteful, typed, well-documented client on top of it.

That is the deep observation the imitators miss: generic abstraction works when the underlying domain is already generic. The artistry was in recognising which side of the cliff payments live on, then executing the developer-experience layer with more precision than anyone else in the industry. The error is not in Stripe's playbook. The error is believing the playbook is portable to terrain it was never designed to cross.

The post-Stripe generation — the operators who will define what gets built next — are the ones who can read terrain. Who stand at the cliff edge and see that a charge is not a seat, an invoice is not a clinical encounter, a webhook is not a maintenance interval. Who understand that the playbook earned its credibility on the plain, and that the next leverage point is in tooling that does not try to be generic at all.

There is a second move the imitators miss, and it runs in the opposite direction. Having established that payments live on the plain, the obvious conclusion is to leave them there — to treat the charge as solved, generic, best handed to whoever abstracted it most beautifully. But the deepest operators are now doing something stranger: carrying the generic primitive back across the cliff and fusing it to the domain. A payment that knows it is attached to a seat hold with ninety seconds left on its clock, to a pricing stack of six interacting discounts, to a loyalty ledger being paid down in the same transaction, is no longer a generic charge. It is a domain object wearing a charge's clothes. The leverage is not in being better at payments than the company that made payments generic — no one wins that fight. It is in being the only platform positioned to make payments un-generic again: to pull the rail back inside the terrain where it can finally see what it is paying for. The same instinct that says "do not abstract the domain" says, on the far side, "and bring the abstracted primitives home." It is the move the smartest deep-domain incumbents are making right now, and it is only available to the company that already owns the floor of the terrain.


Cinema, Specifically

William Smith's 1815 geological map of England and Wales — the strata rendered in hand-applied colour, each formation tinted its own shade and graded darker along its base edge to show how the layers sit beneath one another.
William Smith's 1815 map of the strata of England and Wales — the founding document of a discipline, and the most literal possible rendering of the claim. Every colour is a stratum. Every boundary is a domain decision Smith could make and a generalist could not, because Smith had walked the canals and the quarries while the generalist had only read a textbook. The hand-colouring is not decoration; it is the assertion that the ground has named, ordered, irreducible layers, and that telling one from the next is the whole of the expertise. Domain-deep tooling does the same work — the seat-with-companion-adjacency, the session-with-format, the hold-with-TTL are the section-markings of the cinema interior, legible to the practitioner, invisible to the founder who has only ever drawn shopping carts. — Source: William Smith's geological map of Britain (1815), on Wikimedia Commons

Cinema is the cleanest case study for what happens past the cliff, precisely because cinema looks deceptively like the plain. Bookings, payments, inventory, customers, loyalty — all the surface features of an e-commerce business. A founder on the plain sees a shopping cart with a seat map bolted on top. They are catastrophically wrong, and the wrongness hides in the domain types.

Take the seat. Not a row in a database — a non-fungible resource in a physical room, with sightlines, with companion-seat adjacency for wheelchair spaces, with premium tiers set by distance from the screen, with aisle constraints and the cultural fact of where pairs and groups actually want to sit. Render that map as a generic grid and an experienced cinemagoer rejects the result without being able to say why. The domain taught them what good feels like, and good is not generic.

The session hides the same trap. It is not a calendar event; it is a scheduled instance of a film, in a specific screen, at a specific format, with a specific pricing profile and a lifecycle of its own. The same film at the same hour in two adjacent screens can price differently because one is IMAX and one is 2D. A matinee curves differently from an evening. A Tuesday in a discount market obeys different rules from a Saturday in the same market. Encode it as { start, end, capacity } and you have already lost.

Then the booking lifecycle, where the plain's instincts fail hardest. Select seats and those seats are not purchased — they enter a hold state with a time-to-live, usually minutes. If payment does not complete in time, the seats fall back to available and become bookable again. This is not a UX nicety. It is a domain-specific concurrency-control mechanism that exists because cinema seats cannot be oversold: two customers cannot both buy H7 for the 7:15. A tool without first-class support for hold-with-TTL is, in a real sense, lying about what cinema is.

And loyalty is no discount field. Tiers stack with promo codes, which stack with format surcharges, which stack with matinee discounts, which stack with corporate rates, which stack with concession bundles, which stack with the gift-card balance being paid down — and the order of operations matters, because the interactions are not arbitrary. They encode decades of cinema economics. Get the stacking wrong and the system silently under- or over-charges in ways that take months to surface. The pricing engine is domain expertise, expressed as code.

The point is not that cinema is complicated. The point is that cinema's complications are load-bearing. They are not a mess to abstract away; they are the structure of the business. Tooling that encodes them deeply — typed sessions that know their format, seat maps that understand companion adjacency, hold lifecycles that surface TTL as a first-class concept, pricing engines that model the stacking natively — does not merely describe cinema. It is cinema, in software form. The deeper the encoding, the more value the tool creates, because it does work the generic alternative cannot do at any price.

And cinema, unlike the open frontier it can resemble from the plain, already has its deep incumbent. Just as clinical medicine has its Epic and aviation its AMOS, cinema has the platform that descended into this specificity a generation ago — that learned the seat and the session and the hold and the stack not as a schema exercise but as the slow accumulation of operators telling it, year after year, where it had got the terrain wrong. That encoding is not a barrier in the way the founder on the plain imagines one. It is a moat the way a coastline is a moat: not a wall someone forgot to climb, but twenty-five years of weather no newcomer reconstructs from a clean diagram and good intentions. So the interesting question past this particular cliff is not who will finally descend into cinema — someone already did, and holds the ground. It is how much deeper the terrain still goes, and what the next layer looks like for whoever is already standing on the floor of it: the move from on-premise installs to a live operational platform, the operational pulse exposed as something other systems can subscribe to, the generic primitive — payments — carried back across the cliff and fused to the domain. The frontier is not the floor. It is the depth still beneath the floor, available only to whoever is already standing on it.


The Cliff Generalises

Once you have stood at the edge, you cannot stop seeing it. The coastline runs much further than cinema, and almost every stretch is invisible from the plain — working economies the venture world never troubled to map, each parcel governed by a physics that does not survive the trip back to flat ground.

Walk into clinical medicine and the ground tilts immediately. A patient encounter refuses to sit still inside a calendar event; a medication order is not a line item but a small adjudication, decided in the live tension between an allergy list, a drug-interaction database, a renal-function correction, and an order-set template that assumes all three have already spoken to one another. Epic and Cerner are not loved — they are endured — and they are billion-dollar organisms anyway, because they went down into that specificity at a depth nobody on the coastal plain has been willing to descend to. The depth is the moat. It always was.

Aviation maintenance has its own weather. An airworthiness directive is not a ticket to close; a maintenance interval is three clocks running at once — cycles, flight hours, calendar time — each able to override the others the moment an inspection turns something up or a supplemental type certificate rewrites the rule mid-cycle. Model that as a recurring task and the model has already gone down on the runway. Trax, AMOS, Ramco — unglamorous names, not one of them a dinner-party company — hold the terrain precisely because the encoding took two decades to lay down and cannot be reconstructed by anyone arriving from the plain with a clean schema and good intentions.

Mineral extraction runs deeper still, and means it literally. An assay is not a measurement; a drill log is not a spreadsheet; a single high-grade intercept says nothing until it is read against years of earlier holes, decades of historical survey, and a chain of custody strict enough to satisfy a securities regulator with the power to put people in prison. The generic GIS tool holds up right until the only question a geologist actually cares about — is this intercept structurally connected to the last one — and then it walks off the cliff mid-sentence.

Defense logistics is terrain most builders never get the clearance to see. A munition is not an inventory unit; a force deployment is not a shipment; and the instant security classification, allied-nation distribution rules, shelf-life cycles, and operational tempo start pulling on one another, a horizontal supply-chain platform stops being merely inadequate and starts committing a category error deep enough that the only honest repair is to tear the integration out by the root.

The catalogue does not end there — agricultural genetics, commercial construction, container shipping, drug discovery, semiconductor fabrication — and the shape repeats while the substance never does: the same cliff, a different physics waiting behind it every time. What looks, from the plain, like an impassable wall reads, from inside the terrain, as nothing more exotic than literacy. That asymmetry is the whole opportunity. The twenty years of encoding that stands as an impossible barrier to the founder who has only ever drawn shopping carts is a first language to the operator who already lives on the far side of the cliff — and the next decade of category-defining software belongs to whoever can already read the ground, whether they are building the deep platform or going deeper inside one.


Coda

A second view of Hutton's Unconformity at Siccar Point — the same Scottish cliff face, photographed from a different angle, the seam between epochs running clean across the rock.
Siccar Point from another angle — the same terrain rendered for a different reader, the seam between epochs still cutting clean across the rock. The cliff is unbeautiful to the casual eye and load-bearing to the trained one, which is exactly the property the tooling past it will share. The next decade of platform work belongs to the operators who can read sections like this — who treat the typed Session and the cultural ritual of the matinee as two faces of the same artefact — and build software that does not flatten the strata for the sake of legibility from the plain. — Source: Hutton's Unconformity, Siccar Point (geograph.org.uk), on Wikimedia Commons

The platforms that win past the cliff over the next thirty years — the ones already standing there as much as the ones still arriving — will not look like the companies built on the plain. Their primitives will not generalise to other industries, and that will be the source of their leverage, not the limit of it. Their valuations will keep looking strange to investors trained on horizontal multiples — the public ones especially, marked down for an addressable market bounded by a single industry, even as that industry's depth compounds in ways no horizontal competitor can touch. The market reads the bound as a ceiling. From inside the terrain it is the wall that keeps everyone else out — and the operators who live there have always known which of the two it really is.

What it takes to build one — or to take a deep one deeper — is an operator-engineer-designer who has stood inside the domain long enough to feel where the cliff is. Who can talk to a cinema operator about hold lifecycles and an engineer about the typed schema that enforces them in the same sentence, and mean the same thing both times. Who treats the typed Session interface and the cultural ritual of the matinee as two faces of the same artefact, because they are. Who reads the prevailing SaaS orthodoxy with respect, takes from Stripe what is genuinely portable — the discipline of beautiful developer experience, the seriousness about types, the refusal to ship a mediocre client — and leaves behind the part that was specific to payments and was never meant to travel, except, on the far side, to be carried home.

The plain is crowded. The cliff is not. The terrain past it is mapped only by the people who have lived in it long enough to know where the rivers run. The next platform-defining work belongs to them.

Keep reading

Each essay, the moment it lands.

Each new essay lands here first and reaches subscribers by post — published when it’s finished, not to a schedule. No feed, no algorithm.