pablo/io building in the open

pablo/io

I build small AI-native companies in public.

Real name on the work. This is the workbench, not the storefront. Watch the operating system get built. I publish the motion, receipts and all.

as of 2026-09-30 · every claim carries a price or a date

Builds

Each one carries a status, because a status is a claim and a claim needs a state. A price is what is on sale, never what has sold.

  1. 01VCdeepInvestor-intelligence reports. Send the round, get the map back.live$790 / report
  2. 02WingcalmFear-of-flying companion. Works in airplane mode.live$29 once
  3. 03End of ShameFree test surfaces the pattern. The protocol is the paid work.livefree test · $29
  4. 04dotheshitApp locker. One ring timer, no exit.liveAndroid free · iOS in review
  5. 05nocalcuTwo minutes of mental math, every day.livefree
  6. 06Year of ClarityA book. On Amazon since 2024-12.live$4.99 Kindle · $24 paper
  7. 07The Market for Your ImaginationA 150-page visual book, written and designed.awaiting printawaiting print
  8. 08/outputA podcast produced through one pipeline, end to end.liveweekly
  9. 09The DividendAn interactive essay that de-optimises as you read it.livefree

Three more, free, in the browser: Tiro Libre · World Cup 26 · The AI Kitchen.

Project can have a brand. Proof attaches to Pablo IO.

The brands scatter outward. Wingcalm helps someone breathe on a plane without my biography. VCdeep hands a founder a map of the room. Each keeps its own name. The proof points back to one place, and one name holds the ledger.

Proof

Receipts, dated. Revenue when there is revenue, the zero when there is not. This is the account that does not get to lie.

  • 2026-09-17end of shameV3 shipped, audio first. Press play, write, say it.$29 · four nights
  • 2026-08-26wingcalmTikTok posting moved to a server cron. Gate first, re-airs second.self-running
  • 2026-08-18dotheshitiOS 1.0 submitted to App Review. Manual release.€8.99 · waiting
  • 2026-08-03all brandsStripe checked. 19 products, 56 live payment links.€0.00 to date
  • 2026-07-09wingcalmWindow Seat newsletter engine live. Worker plus D1, double opt-in.61 issues pooled
  • 2026-07-07all brandsStripe sale bell armed. Emails on every purchase, free ones included.verified end to end
  • 2026-07-04end of shameIdea to live checkout in one day. A $29 protocol behind a free test.$29
  • 2026-07-04pabloioTwo $29 payment links live. Revenue to date shown, never hidden.€0.00
  • 2026-04-12/outputEpisode one published. One pipeline, synthesized voice.EP01 on Spotify
  • 2024-12year of clarityPublished on KDP. Kindle, paperback, hardcover.$4.99 · $24 · $33

The operating system

1idea
2build
3ship
4measure
5learn
6compound

One loop runs under every project. The projects are replaceable. The loop is permanent, and it keeps running after any single company is retired. Each contestant gets the same test: $100, thirty days, five angles. About thirty percent gets discarded after the money is spent.

If you build small companies and want a second operator in the room, write to me.

identity spec · retouch 03

Cobalt

The live system, kept. Added: cobalt as the second signal for anything that runs or responds, coral for waiting states, a mono-led section voice, and the slash wordmark pablo/io.

Logo · current

Pablo IOring mark + mono wordmark, as live
Pablo IOon lime the ring disappears

The live mark is a lime ring with a breathing centre and two orbiting dots, and the wordmark is JetBrains Mono with the IO in lime. The ring reads as a planet or a loading state, carries no letter, and fails on lime. The wordmark is fine and stays as the fallback in running text.

Logo · proposed

pablo/ioon ground
pablo/ioon lime
pablo/ioon the secondary
favicon · app icon · 56 / 32 / 16

The slash. The wordmark becomes a path: pablo/io, lowercase, in the machine face the brand already speaks, with the slash in lime. It reads as a route, a directory, an input/output boundary, and it matches how the projects are already named (/output). The mark is the slash alone in a square: the one stroke that separates the person from the output.

  • Wordmark: pablo/io in JetBrains Mono 700, lowercase, no tracking, slash in lime. Never uppercase, never a sans.
  • Lockup: slash tile, 12px gap, wordmark. Clear space equals the slash width. Minimum: tile 16px, lockup 88px.
  • On lime the slash goes ink. On cobalt the slash stays lime.
  • The slash is always 60 degrees, always round-capped, never doubled.

Colour

ground #0b0b0bunchanged
surface #131313unchanged · proof, spec
border #1f1f1funchanged
text #f5f5f0unchanged · warm white
muted #9a9a94unchanged · 6.9:1 on ground
signal #d0ff00unchanged · status, one CTA, selection, focus
secondary #3d74ffnew · the second signal: links, running states · on ground 4.8:1
accent #ff3e6cnew · waiting states, alerts · on ground 5.8:1

Cobalt is the second signal. Where lime means live and the one action, cobalt means running or interactive: links, hover, self-running states, the outlined second button. The two are far enough apart on the wheel to never blur, and cobalt on the ground clears 4.5:1 at label size. Coral is the accent for waiting or failing states. Neither ever fills a section.

Typography

  • display · anton 400 · 44 to 104px · uppercaseBuilt in public.
  • section · anton 400 · 32 to 51pxProof
  • item · inter 800 · 18 to 22px · -0.02emEnd of Shame
  • body · inter 400 · 16px / 1.5Real name on the work. Every claim on this page carries a price or a date.
  • label · jetbrains mono 500 · 11px · 0.2embuilding in the open · checked 2026-08-03

The retouch shifts weight to the machine face. Anton keeps only the hero and the law. Section heads move to JetBrains Mono, tracked uppercase, so the page reads as a system with one loud statement rather than a poster with lists under it. Inter still carries names and body. Corners tighten to 12px to match.

Copy

The voice does not change. Declarative, first person, receipts before adjectives. The retouch only changes what carries it. Canonical lines stay canonical:

  • I build small AI-native companies in public.
  • Real name on the work.
  • Follow the build.
  • Likes lie. Comments lie. Stripe doesn't.
  • Project can have a brand. Proof attaches to Pablo IO.

Never: hype, hedges, em-dashes, emoji, the reframe pattern, a sentence that consults or teaches. Lime never carries a sentence. Paths are written as paths: /output, /proof. Lowercase in mono is allowed; capitals earn their place.

Devices

  • The dot field. Kept as is: the lime grid that wakes near the cursor and breathes around the centre.
  • The cursor glow and the vignette. Kept as is.
  • The magnetic skew button. Kept as is, one per page, always lime, always saying where it goes.
  • Status dots. Lime with a ping for live, white for running, a hollow accent ring for waiting. The only place the accent appears by default.
  • Mono section heads. The section voice is the machine voice; only the thesis and the law shout.

Do / don't

Do

  • Keep the seven live tokens exactly.
  • Use cobalt for anything that runs or responds.
  • Use coral only on a waiting or failed state.
  • Write paths as paths.

Don't

  • Cobalt fills, cobalt headlines.
  • Anton below 40px.
  • The ring mark anywhere.
  • Corners above 12px.

Laws carried over

  • Never a storefront. Products sell on their own domains; this page shows proof and links out.
  • Lime is never body text, never a headline, never a large fill. Accent for signal only.
  • Never invent revenue and never hide the €0.00.
  • The separate operating company stays off this surface, including as background credibility.
  • No trackers, popups, comment sections, contact forms. Published copy passes the voice gate.
03 cobalt · all retouches