Readack design system
The instrument panel. Dense by default, ruled like a ledger, honest about every open. Spec lives in packages/ui.
01Tokens
--rk-ink
text
--rk-ink-2
secondary
--rk-ink-3
faint
--rk-line
hairline
--rk-open
confirmed open
--rk-click
link click
--rk-warn
proxy suspect
--rk-danger
bounce/fail
Type: Archivo (variable width) for UI · JetBrains Mono for data · 0123456789 always tabular · micro labels at 10.5px / 0.08em · 4px spacing grid, 28px rows.
02Icons
double-check
check
eye
click
link
mail
send
clock
shield
filter
proxy
spark
revive
bell
doc
x
user
search
external
chevron
16px grid, 1.75 stroke, round caps. double-check is the brand mark — it only ever means a confirmed open.
03Status flags & badges
PendingSentOpenedClickedProxy fetchSelf-openBounced
draft+12% opens3 linksApple MPPblocked
ConfirmedLikelyLowNo signal
The semantic line we never blur: green is earned. A proxy fetch is amber until corroborated; a self-open is struck through and excluded from counts.
04Stats
Tracked today
148 +23
emails sent with pixel
Confirmed opens
64.2% +3.1
excludes proxy & self-opens
Click-through
11.8% −0.4
38 clicks / 12 links
Suspect fetches
19
GIP + Apple MPP, held
05Recipient table
| Recipient | Status | Confidence | Opens | Clicks | Last event | Client |
|---|---|---|---|---|---|---|
| ines.farrow@northwind.io | Clicked | Confirmed | 7 | 3 | 14:32:08 | Gmail · Chrome 137 |
| d.okafor@hartleyglass.com | Opened | Confirmed | 2 | · | 13:58:41 | Gmail · iOS app |
| procurement@vellum.co | Opened | Likely | 1 | · | 12:11:55 | Gmail proxy (GIP) |
| k.lindqvist@aurora.se | Proxy fetch | Low | 1 | · | 09:02:13 | Apple MPP prefetch |
| me@readack.com | Self-open | No signal | · | · | 08:47:30 | Self-open, suppressed |
| old-contact@retired.net | Bounced | No signal | · | · | 08:45:02 | 550 mailbox unavailable |
| j.barrett@coastal.dev | Sent | No signal | · | · | — | — |
06Activity feed
- 14:32:08ines.farrow@northwind.io clicked /pricing in “Q3 proposal — final numbers”
- 14:31:52ines.farrow@northwind.io opened “Q3 proposal — final numbers” · 3rd open
- 13:58:41d.okafor@hartleyglass.com opened “Re: install timeline”
- 12:11:55Proxy fetch for “Vendor onboarding docs” — procurement@vellum.co, held for confirmation
- 11:40:19Open spike on “Q3 proposal” — 5 opens in 12 min, likely forwarded
- 08:47:30Self-open suppressed on “Q3 proposal” — sender viewed Sent mail
- 08:45:02old-contact@retired.net bounced — 550 mailbox unavailable
07Event timeline
- 14:32:08Clicked /pricingGmail · Chrome 137 · macOS — wrapped link rk_c_8Hf2
- 14:31:52Opened — 3rd openConfirmed (client fetch, post-proxy) · Confidence ●●●
- 12:06:33Proxy prefetchgoogleusercontent.com GIP — not counted as an open
- 09:14:00Sentvia Gmail · pixel rk_o_3kQ9 injected, 2 links wrapped
08Buttons & fields
Beats pixel blocklists. CNAME to px.readack.com.
Shortcuts render as ⌘+⏎ kbd chips.
09Ops theme (dark)
data-theme="dark" — same tokens, recutOpenedProxy fetchLikely
Watching
61
emails awaiting first open
Opens tonight
9 +9
Clicks
2
- 14:32:08ines.farrow@northwind.io clicked /pricing in “Q3 proposal — final numbers”
- 14:31:52ines.farrow@northwind.io opened “Q3 proposal — final numbers” · 3rd open
- 13:58:41d.okafor@hartleyglass.com opened “Re: install timeline”
- 12:11:55Proxy fetch for “Vendor onboarding docs” — procurement@vellum.co, held for confirmation
- 11:40:19Open spike on “Q3 proposal” — 5 opens in 12 min, likely forwarded
- 08:47:30Self-open suppressed on “Q3 proposal” — sender viewed Sent mail
- 08:45:02old-contact@retired.net bounced — 550 mailbox unavailable