AAGO Brandbook

Two real type systems, not one — the same "both real, shown honestly, not reconciled" treatment the color page already gives the palette discrepancy. This page is the type half of that same finding, checked for the first time here.

Found 2026-09-20

A stale claim, caught by reading both files

ago-console/src/design/tokens.css's own header comment says every value in it, type included, is "traceable to ago-landing/index.html" — true on the day it was written. ago-console/index.html's own font-loading <link> still pulls the three families that trace was made from: Unbounded / Manrope / JetBrains Mono. But ago-landing/index.html's own current font-loading <link> pulls a different three: Onest / IBM Plex Sans / IBM Plex Mono. The landing page was redesigned after the console's tokens were traced from it, and nothing updated the claim.

Read directly from each repository's own index.html, not assumed: ago-console/index.html loads family=Unbounded:wght@700&family=Manrope:wght@400;600;700;800&family=JetBrains+Mono:wght@500;600. ago-landing/index.html loads family=Onest:wght@500;600;700;800&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600. Both quoted verbatim from each file's own <link href="https://fonts.googleapis.com/css2?...">".

Two systems, side by side

Real specimens, rendered at the actual weights and sizes each site loads and uses — not just the family name.

In use today

ago-console's system

tokens.css: --ago-font-sans / --ago-font-display / --ago-font-mono

--ago-font-display · Unbounded 700
Unbounded
The wordmark only — one use per screen, by design.
--ago-font-sans · Manrope 700
Manrope
Interface text — every label, paragraph and control (400/600/700/800 loaded).
--ago-font-mono · JetBrains Mono 600
JetBrains Mono
Identifiers: ids, sequence numbers, hex colours (500/600 loaded).
In use today

ago-landing's system

styles.css: h1/h2/h3+buttons / body / .kicker+.num

h1, h2, h3, .brand, .btn · Onest 800
Onest
Headings, wordmark, buttons, big numbers (500/600/700/800 loaded).
body · IBM Plex Sans 400
IBM Plex Sans
Body copy — the page's own default font-family (400/500/600/700 loaded).
.kicker, .num · IBM Plex Mono 500
IBM Plex Mono
Kickers, tabular numbers, prices (400/500/600 loaded).

Two scales, two jobs

The console's scale is a dense-tool scale — per tokens.css, "the console drops body to 15px and caps the largest thing on any screen at 22px: an operator reads a queue, not a pitch." The landing's own scale sells, and can afford to: its h1 alone runs from 34px to 60px depending on viewport.

Console scale (tokens.css)

Landing scale (styles.css)

All six are free — but not the same free

Google Fonts only serves openly-licensed families, so "free" is true for all six — but the licenses themselves are not identical, and the difference is checkable, not asserted. Five of the six carry the SIL Open Font License 1.1, the license most Google Fonts families use. JetBrains Mono is the odd one out: JetBrains distributes it under the Apache License 2.0, not OFL.

FamilyUsed byLicense
Unboundedago-consoleSIL Open Font License 1.1
Manropeago-consoleSIL Open Font License 1.1
JetBrains Monoago-consoleApache License 2.0
Onestago-landingSIL Open Font License 1.1
IBM Plex Sansago-landingSIL Open Font License 1.1
IBM Plex Monoago-landingSIL Open Font License 1.1

Both licenses permit commercial use, modification and redistribution with no royalty. The practical difference that actually matters if either family is ever vendored rather than loaded from Google Fonts: OFL requires a modified font to be renamed before redistribution and forbids selling the font file by itself; Apache 2.0 carries neither restriction, plus an explicit patent grant OFL does not make. Neither difference changes anything about loading these six from fonts.googleapis.com, which is what both sites actually do today.