decided 2026-09-30

The mark is decided. The face is between two.

The field, nine dots with one lit, replaces the ring. The seven live tokens stay. What remains open is the display face, Inter Tight or Anton, and with it which wordmark carries the name.

The mark

The live page is a field of lime dots that wake near the cursor. The mark is that field at its smallest true size: a three by three grid, the centre lit. The signal in the field.

Construction

A 100-unit square. Dots at 20, 50 and 80 on both axes, radius 6.5. The centre dot is lime at radius 9. Nothing else: no ring, no frame, no letter.

Clear space and size

CLEAR SPACE = ONE CELL

Clear space on every side equals one grid cell (30 units, or 30% of the mark's width). Minimum 16px on screen, 4mm in print. At 16px the mark still reads because the lit dot is the largest shape in it.

Colour behaviour

ground

light

on lime

mono white

mono black

Favicon and app icon

16

32

64

180 · apple touch

1024 · lime variant

The icon is the ground square with the mark at 62%, so the outer dots keep their clear space inside the tile. The lime variant is for the one place the brand may fill with lime: the app icon.

Never

rotated
all lime
the old ring around it
gradient
unlit
glow on the mark

Typography: A or B

Two systems, both shown with the mark in the mast, the hero and the type ladder. Everything else on the page stays the same. Pick by looking.

System A · Inter Tightpabloio. · one family at two widths · what the March spec wrote
building in the open

pabloio

I build small AI-native companies in public.

Follow the build

as of 2026-09-30

What it says. The name is a word that ends. The display and the body are one family, and the headline weight is the same weight as the wordmark, so a headline and the logo never argue. Cleaner, quieter, more contemporary; less loud than the live page.

  • display · inter tight 900 · -0.03emBuilt in public.
  • section · inter tight 900Proof
  • item · inter 800End of Shame
  • body · inter 400Real name on the work. Every claim carries a price or a date.
  • label · mono 500checked 2026-08-03
X avatarX banner, system A

x avatar 400 · x banner 1500 × 500 · og image in the assets

System B · AntonPABLO IO · the poster voice · what shipped on the live page
building in the open

pabloio

I build small AI-native companies in public.

Follow the build

as of 2026-09-30

What it says. The name is shouted in the same condensed voice as the headlines, IO lit lime. Louder, more physical, closer to the page that is live today. Anton carries only display sizes; below 32px the mono wordmark takes over.

  • display · anton 400 · -0.01emBuilt in public.
  • section · anton 400Proof
  • item · inter 800End of Shame
  • body · inter 400Real name on the work. Every claim carries a price or a date.
  • label · mono 500checked 2026-08-03
X avatar, limeX banner, system B

x avatar 400, lime variant · x banner 1500 × 500 · og image in the assets

Lockups, both systems

Mark height equals the wordmark's cap height plus a third; gap equals a third of the mark. The mark always sits left of the wordmark, or above it in the stacked lockup. In running text and below 14px the wordmark stands alone as PABLO IO, exactly as locked in March.

Still open: a secondary colour

None was picked. The four proposals stay on the table, each with the role it was drawn for. "None" is also an answer: the live page has run on three colours for six months.

violet #7c6cffthe interactive colour: links, hover, the second button · 5.1:1 on ground
forest #12402ca surface for the record: proof and spec sections turn forest
cobalt #3d74ffthe second signal: links and running states · 4.8:1 on ground
stone #e8e2d3daylight: a paper surface for sections read slowly, ink text

Assets

Outlined SVGs, no font dependency, generated from logo/build-logo.py. PNGs for X and Open Graph. Everything in this folder is the decided mark; the wordmark files exist for both systems until the face is picked.

identity · all candidates