reinalabs.com v2 — type specimen — 2026.08.21
Archivo & Geist Mono
Decided 2026-08-21. Archivo carries the headlines and body; Geist Mono carries every number, label, and piece of metadata. The grotesk is the creative director. The mono is the code. Both self-hosted — no external font request.
01 — Hero headline
Decided. Set at the size it will actually run.
chosen
Creative director.
I ship the code too.
also considered
I automate my own job.
I build the software my team runs on.
I stopped making decks and built the deck machine.
Now I build the tools.
I design it, then build the thing that makes it.
I automated the part I used to do by hand.
02 — Statistics in mono
The load-bearing idea. Tabular alignment for free, and it reads as terminal output rather than marketing.
grotesk numerals
54,582 · 3,763 · 48
mono numerals — recommended
54,582 · 3,763 · 48
03 — Weights
Four weights, self-hosted. ~74KB total.
400Find the friction. Build the fix.
500Find the friction. Build the fix.
600Find the friction. Build the fix.
700Find the friction. Build the fix.
04 — Body
Real case-study copy at real length, from docs/03-voice.md §8.
proposal builder
I built the software my sales team runs on.
A rep pastes notes from a discovery call. The tool returns structured objectives mapped to the right products, generates the narrative, and publishes a client-facing page with a tracked link.
54,582 lines of TypeScript. 54 API routes. 15 tables. Auth, a manager-first approval chain, per-section engagement analytics, PDF export through headless Chromium.
33 migrations in four months. Each one started as someone asking for something.
05 — Mono labels
Eyebrows, metadata, section numbers, timestamps. The developer half of the system.
selected work — 05
stocktwits · 2026 · in production
next.js · supabase · anthropic api
shipped 2026.05.11
06 — Ground & signal
Warm near-white, not pure #fff. One accent — Swiss red, for emphasis only, never decoration.
ground
#fcfcfa
sunk
#f4f4f1
rule
#e2e2dc
muted
#74746f
ink
#0a0a0a
signal
#d62e12