TagsAboutRSS
NO.001August 13, 20267 min

The Product Is a Minority of the Work

Ask founders what their company builds and they'll name the product. The git history disagrees.

Ours covers thirty months, two repositories, some 4,500 commits and 2.6 million changed lines: from first line to tens of millions of users, and eight figures in consumer revenue alone. The core capability got 24% of all code change. The machinery around it got 1.5× that — and in the last half-year before we let AI agents in, the machinery briefly took more than half.

24%
of code change touches core
1.5×
machines vs core
53%
machines’ peak share, 2025H2
69%
peak monthly AI co-authorship
Figure  · Thirty months of git history in four numbers

We don't think our ratio is unusual. It's the default physics of a scaling product, because features are chosen; machines are summoned — each by a specific event, at a roughly predictable stage. Per stage, then: what to build, what to buy, what to refuse.

The six machines and their total bill:

0%5%10%15%20%25%Core capability23.9%Distribution16.3%Money8.7%Leverage7.5%Identity & teams6.7%Reliability0.7%Trust & safety0.2%
data table
machine%
Core capability23.9%
Distribution16.3%
Money8.7%
Leverage7.5%
Identity & teams6.7%
Reliability0.7%
Trust & safety0.2%
Figure  · Where the code change went: the core vs. the six machines

Geoffrey Moore called everything that doesn't differentiate you context, and the dangerous kind mission-critical context — work that wins no customers and destroys you if it fails. That's most of this chart.

Zero to one: the machines don't exist. Keep it that way.

Our first six months — the ones that decided whether the company would exist — gave the machines 14% of code change and money zero. That was correct. Kent Beck's phase warning applies literally: "applying the approach from one phase to an idea in another phase kills ideas."1

The advice is a refusal list. A payment link, not a billing system. One language. Auth from a vendor. Logs to stdout. An admin panel, an i18n pipeline, or SSO before PMF is procrastination with dignity.

The one exception is plumbing that costs days now and quarters later:

  • An idempotency key on every mutating endpoint.
  • Strings in one file, even with one language.
  • An append-only event log — actor, action, target, timestamp.
  • A tenant model, even while every "team" is one person.

These are the sockets the machines will plug into. Three of the four cannot be retrofitted honestly.

First revenue: money and identity arrive together

The money machine reached our codebase in month five — the first month real revenue did — and never left:

Summoned by — the first support ticket containing the word “refund” and a screenshot of a bank statement
  • payments & billing
    provider integration, checkout, billing plumbing
    43%
  • invoices & tax
    receipts and tax lines — what auditors read
    20%
  • plans & pricing
    subscriptions, renewals, price changes
    18%
  • credit ledger
    balances, top-ups, the append-only source of truth
    15%
  • payment webhooks
    at-least-once delivery, dedup, replay
    4%
  • refunds & disputes
    every edge case denominated in dollars
    0.5%
ours: 8.7% of everything — more than a third of core’s volumecase: Twilio 2013 billing loop2
Figure  · The money machine — its six parts by share of the machine
  • Give billing an owner at the first chargeback. It's a product now, with adversaries and auditors, and its bugs are denominated in dollars.
  • Start the append-only ledger with the first real dollar. Double-entry, corrections as new entries, never edits. Cheap at ten customers, archaeology at ten thousand.
  • Fail closed. If the balance can't be written, don't charge and don't suspend. The card's case is the opposite: a billing system charging cards in a loop against a balance it couldn't update.
  • Set the fraud dial consciously. The optimal amount of fraud is non-zero3 — zero fraud means you're turning away real customers and can't see it.

Identity arrived in month two, because accounts, teams, and API keys are how a product gets used at all:

Summoned by — consumer accounts on day one — then converted to enterprise shape by a single signature
How much of this machine a vendor could have written
70% must-build — teams & workspaces, roles30% buyable — auth, API keys
ours: 6.7% — before any enterprise dealcase: Stack Overflow SSO: 3 eng × 3 months4
Figure  · The identity machine — how much a vendor could have written

One asymmetry decides this stage: the tenant model you cannot buy; nearly everything else you can. Consumer auth is a commodity. Enterprise SSO and SCIM are a commodity — the card's case, three engineers for three months, is the price of building what a vendor sells. Bolting teams onto a single-user schema later touches every table; that's why the fitting goes in at zero.

Going wide: distribution and trust

Distribution was a rounding error in year one. In the second half of 2025 it took 37% of all code change — more than double core's share. Nobody decided to go global; users from countries we never marketed to did.

Summoned by — signups arriving from a country you never marketed to
SEO machinery 48%locales & translations 33%landing & campaigns 14%sharing & referrals 4%
ours: 16.3% of everything — the largest machinecase: Slack: 20,000 strings to retrofit5
Figure  · The distribution machine — parts stacked to scale
  • SEO is an engineering discipline, not a marketing task. The largest single machine part in our history: sitemaps, canonical URLs, structured data, programmatic pages — all code.
  • Never gate a release on translation completeness. Tier locales into blocking and non-blocking with an SLA, or engineers will route around i18n by hardcoding English.
  • Automate translation to extinction. Our pipeline now ends in a bot with its own git identity — no human touches routine strings. Mercari's LLM pipeline cut translation cost 100×6 the same way.

The moment you're visible, you're farmable:

Summoned by — a cloud bill that spikes while your user analytics don’t
Drawn to the same scale
money · 8.7%
trust · 0.2%
security hardening 57%human verification 27%abuse & moderation 11%rate limits & quotas 5%
ours: 0.2% — smallest in code, outsized in consequencecase: CI mining: $103k farmed per $1377
Figure  · The trust machine — drawn to the same scale as money

Our smallest machine — and several parts of it exist because someone attacked us first. That's backwards; the order should be:

  • Build the meter before the abuse. Layered rate limiters8, dark-launched, failing open. The version built after the bill spike gets built in a weekend, badly.
  • When farming starts, raise the price of identity. The $1 card authorization became an industry standard after CI providers learned the economics: about $103,000 of farmed compute per $137 of attacker profit.

The team is the bottleneck: reliability and leverage

Somewhere in growth, the constraint stops being what you can build and becomes what you can operate:

Summoned by — the first outage you can price
What our web surface ships
fixes
features
1.7 fixes for every feature
alerts & incidents 34%analytics events 31%monitoring & tracing 26%logging 9%
Figure  · The reliability machine — what the web surface ships
  • Watch fix-to-feat per surface. Our web surface ships nearly two fixes for every feature — that surface is infrastructure now. Staff it as infrastructure; don't exhort it to ship features.
  • Argue with numbers or lose. SLOs and error budgets exist so the pager and the roadmap stop fighting on vibes.
  • Stage config like code. Cloudflare's 2019 outage10 was one regex, deployed globally in seconds, through a path that skipped staging.
  • Test restores, not backups. The card's case: three backup layers, all discovered broken at the same moment.
Summoned by — your best engineer running SQL for the support team on a Friday afternoon
63%
of this machine is admin & internal tools — a second product, invisible to users
admin & internal tools 63%CI & deploys 18%test infrastructure 11%dev tooling & lint 7%
Figure  · The leverage machine — the product users never see
  • Build the internal platform before the tenth tool. Shared auth, shared audit log, one-step deploy. Shopify runs 50,000 internal sites on one $200-a-month VM12 because building was never the bottleneck — safe distribution is.
  • Self-serve the top support actions into the product. Each one deletes a class of tickets permanently.

Maturity: the machines eat the roadmap — unless you delegate them

By the second half of 2025 the machines took 53% of all code change; core fell to 15%. Nobody chose that — users, revenue, and adversaries did, one ticket at a time:

0%10%20%30%Distribution15.2%Money9.3%Leverage8.7%Identity & teams8.1%Core capability26.6%
data table
area20242026
Distribution4%15.2%
Money2.6%9.3%
Leverage2.9%8.7%
Identity & teams2.4%8.1%
Core capability17.9%26.6%
Figure  · Machine share: 2024 vs 2026 · % of the year’s lines changed · hollow = 2024, filled = 2026

The standard response is a "refocus on the product" memo. That's exactly wrong: the machines are load-bearing, and billing that gets "refocused" away corrupts ledgers. The only response that works is making the machines cheap. In 2026 we found out how:

0%10%20%30%40%agents arrive →24Q124Q224Q324Q425Q125Q225Q325Q426Q126Q226Q3
data table
quarter%
2024Q10.3%
2024Q21.1%
2024Q32.1%
2024Q42.3%
2025Q14.3%
2025Q22.4%
2025Q34.5%
2025Q43.4%
2026Q126.9%
2026Q216.6%
2026Q336.1%
Figure  · Code changed per quarter · share of thirty months’ total change · 26Q3 is six weeks old

We let AI coding agents in from March 2026 — every agent commit signs a co-author trailer, so the history keeps score:

0%25%50%75%100%25-0625-0825-1025-1226-0226-0426-0626-0847.1%peak 69.3%
data table
month%
25-060%
25-070%
25-080%
25-091.5%
25-101.6%
25-110%
25-120%
26-010%
26-021.8%
26-0312.1%
26-0447.7%
26-0531%
26-0640.7%
26-0769.3%
26-0847.1%
Figure  · AI co-authored share of monthly commits · commits signing an agent co-author trailer

Five months from zero to 69%, in whole units of work — the median agent commit is bigger than the median human-only one. Where the agents work is the point:

0%25%50%75%100%Money75.8%Core capability46.5%Growth & SEO42%Reliability40%i18n10.8%
data table
area%
Money75.8%
Core capability46.5%
Growth & SEO42%
Reliability40%
i18n10.8%
Figure  · AI co-authored share by area, 2026 · dashed = overall 38.9%

The most delegated code we have is the money machine: 76% agent co-authorship against a 39% average. Machine work is patterned, specifiable, judgment-light — exactly what delegates first. i18n sits at 11% only because that work left interactive sessions entirely and became a bot: the same instinct, carried to its end. Moore's endgame for context was outsource it. The 2026 edit is standardize, instrument, delegate — in-house and auditable, which matters most in the code that moves money.

The result is the era chart above: each 2026 quarter now moves more code than all of 2024, and core's share rose while it happened — 15% in the machine-eaten half, 26% now. Not by refusing machine work; by making it cheap.

What to buy, what to build

One rule sorts every part: vendors sell what's identical at every company; nobody sells the parts that encode yours.

Table  · Buy vs. build across the six machines
money
buildcredit ledger · entitlements · webhook reconciliation · fraud dial
identity
buyClerk19 / Auth020 · Supabase Auth21 · WorkOS22 (SSO + SCIM) · Unkey23 (API keys)
buildtenant model · roles & permissions · plan gating · audit log
distribution
buyCrowdin24 / Lokalise25 (TMS) · DeepL26 / LLM APIs (MT) · Ahrefs27 / Search Console28
buildsitemaps & structured data · programmatic pages · translation bot · referral loops
trust
buildapp-layer rate limits · usage metering · abuse heuristics
reliability
buildSLOs & error budgets · runbooks · staged config rollout · restore tests
leverage
buildinternal platform · admin actions · self-serve support flows

Three calls on this sheet need actual judgment:

  • A merchant of record trades ~5% in fees for the global sales-tax problem. A good trade until finance is a team.
  • Vendors see traffic; only you see usage. Buy the edge, build the meter.
  • Every pane of glass is buyable. Deciding what wakes a human at 3 a.m. is not.

The stage sheet

Table  · Signals that announce each stage, with its buy/build/refuse list
StageYou'll know becauseBuyBuildRefuse
Zero to oneno PMF yetpayment links, hosted authcore + the four fittingsbilling systems, i18n pipelines, SSO, admin panels
First revenuea refund ticket with a bank screenshotbilling engine or MoR, tax automationthe ledger, webhook dedup, a fraud dialsubscription machinery ahead of validated pricing
Going widesignups you never marketed for; a bill spikeTMS + machine translation, captcha, edge WAFthe SEO surface, the translation bot, app-layer limitshand-translation; locale-complete release gates
Team bottlenecka priceable outage; Friday-afternoon SQLerrors, metrics, paging, a tool builderSLOs, restore tests, the internal platformunowned dashboards; hero on-call
Maturitymachines out-shipping corecoding agentsspecs an agent can execute, an owner per machinethe "refocus on product" memo

The product is what users see. The git history is what a company actually is: a capability surrounded by machines, arriving on a schedule you don't control. The schedule is knowable, though. Pre-plumb the fittings, meet each machine at its trigger, buy the commodity parts, build the parts that touch your money and your tenants — and make all of it cheap enough that your judgment stays where it differentiates.

References

  1. [1]"applying the approach from one phase to an idea in another phase kills ideas."medium.com
  2. [2]Twilio 2013 billing looptwilio.com
  3. [3]The optimal amount of fraud is non-zerobitsaboutmoney.com
  4. [4]Stack Overflow SSO: 3 eng × 3 monthsstackoverflow.blog
  5. [5]Slack: 20,000 strings to retrofitslack.engineering
  6. [6]Mercari's LLM pipeline cut translation cost 100×engineering.mercari.com
  7. [7]CI mining: $103k farmed per $137sysdig.com
  8. [8]Layered rate limitersstripe.com
  9. [9]GitLab 2017: 3 backup layers, all brokenabout.gitlab.com
  10. [10]Cloudflare's 2019 outageblog.cloudflare.com
  11. [11]Retool survey: ⅓ of eng timeretool.com
  12. [12]Shopify runs 50,000 internal sites on one $200-a-month VMshopify.engineering
  13. [13]Stripe Billingstripe.com
  14. [14]Paddlepaddle.com
  15. [15]Lemon Squeezylemonsqueezy.com
  16. [16]Stripe Taxstripe.com
  17. [17]Anrokanrok.com
  18. [18]Stripe Radarstripe.com
  19. [19]Clerkclerk.com
  20. [20]Auth0auth0.com
  21. [21]Supabase Authsupabase.com
  22. [22]WorkOSworkos.com
  23. [23]Unkeyunkey.com
  24. [24]Crowdincrowdin.com
  25. [25]Lokaliselokalise.com
  26. [26]DeepLdeepl.com
  27. [27]Ahrefsahrefs.com
  28. [28]Search Consolesearch.google.com
  29. [29]Turnstilecloudflare.com
  30. [30]hCaptchahcaptcha.com
  31. [31]Cloudflare WAF & edge limitscloudflare.com
  32. [32]Sentrysentry.io
  33. [33]Datadogdatadoghq.com
  34. [34]Grafanagrafana.com
  35. [35]PagerDutypagerduty.com
  36. [36]incident.ioincident.io
  37. [37]PostHogposthog.com
  38. [38]Amplitudeamplitude.com
  39. [39]GitHub Actionsgithub.com
  40. [40]Retoolretool.com
  41. [41]Vercelvercel.com
  42. [42]Cloudflarecloudflare.com
© 2026c@put.devRSS