D
Dispatch
Changelog Hub — the design system
styleguide · v1.0 · editorial / paper
01
Color tokens
Warm paper, warm near-black ink. One teal accent for Feature & primary; one warm red, spent only on Breaking.
02
Type ramp
Soft serif for titles & the brand. Humanist sans for body & chrome. Mono for dates, versions, code.
display Ship it like you mean it. Fraunces · 46/1.04
h1 What shipped this week Fraunces · 30/1.12
h2 Per-key rate limits Fraunces · 22/1.18
lead A calm, dated record of every change — written by a human, read in five seconds. Inter · 17/1.55
body The composer renders your markdown with the public page's exact typography, so what you write is what readers get. Inter · 14/1.6
small / meta Published Feb 19, 2026 · 4,210 readers this month Inter · 12.5
mono v2.14.0 · Feb 19, 2026 · 09:41 JetBrains Mono · 13
small-caps February 2026 Fraunces · 12 · 0.14em
03
Buttons
One primary per zone. Same-row controls share height. Labels centered & nowrap.
Publish entry
Save draft
Schedule
Unpublish
Publishing…
New entry
Preview
Copy widget snippet
04
Type pills, version & date stamps
The four entry types. Breaking is the only warm-red pill in the product.
Entry types
Feature
Improvement
Fix
Breaking
Subscriber status
Active
Unsubscribed
Bounced
Version tag · date stamp · free-form tags
v2.14.0
Feb 19, 2026
api
billing
dashboard
05
Inputs & forms
One field component. Visible focus rings. Type selector is a segmented control.
06
Top navigation
One top-nav across the writer's workspace. Collapses to a hamburger drawer at ≤ 768px.
Dispatch
New entry
08
Rendered markdown · entry body
The typographic rhythm that is the product's whole pitch — headings, lists, code, images, the breaking callout.
⚠ Breaking change — action required
Replace calls to /v1/charges with /v2/payments before Apr 1, 2026 . The response shape is unchanged; only the path moves.
You can now set request ceilings on individual API keys, directly from the dashboard. This is the most-requested control from teams running multi-tenant workloads on a shared account.
How it works
Each key inherits the account default of 100 req/s. Override any key on the Keys tab; changes take effect within a few seconds and are logged.
Setting a limit
Open Settings → API keys and pick a key.
Enter a per-second ceiling and save.
Watch live usage against the new ceiling on the same row.
bash
# set a 250 req/s ceiling on one key
curl -X PATCH https://api.acme.dev/v2/keys/key_8f4a2 \
-d '{ "rate_limit": 250 }'
[ screenshot: per-key limits on the Keys tab ]
“Per-key limits let us give each customer their own ceiling without spinning up a second account.”
09
Widget snippet panel
The one dark surface in the product — a copyable embed block with a Copy action.
embed · in-app widget
Copy snippet
<script src ="https://cdn.dispatch.app/widget.js"
data-workspace ="acme"
data-theme ="auto" defer></script>
10
KPI stat tiles
Reserved for the subscribers header. Mono tabular numerics.
Subscribers
8,412
+214 this month
Digest open rate
41%
last 4 sends
Next digest
Mon
Feb 24 · 9:00am
Entries queued
6
1 breaking, leads digest
11
Subscriber table
≤ 6 columns, visible outer frame, status pills. Collapses to cards at ≤ 480px.
Email Source Subscribed Status Opens
dev@northwind.io public-page Jan 14, 2026 Active18
priya@acmecloud.com imported Dec 02, 2025 Active31
ops@hollowmade.dev manual Feb 03, 2026 Unsubscribed2
team@brightforge.app public-page Nov 21, 2025 Bounced0
12
Alerts & toasts
Quiet by default. The danger register is reserved for the things that truly matter.
ℹ Draft autosaved. Every keystroke is saved — you can close this tab and pick up where you left off.
⚠ No version tag. This entry will publish as unversioned. Add a version, or publish as-is.
⚠ This week's digest failed to send. A transient issue interrupted the send. Retry now — no subscriber was emailed twice.
Entry published — live on the page, widget & next digest. ×
Snippet copied to clipboard. ×
13
Empty & loading states
Every empty state names one concrete next step. Skeletons match the real row shape.
✎
No entries yet
Write your first release — it'll be live on your page in about four minutes.
Write first entry
14
In-app widget preview
A small unread dot in the host app's header; a calm panel. No confetti, no takeover.
Acme Cloud
🔔
What's new 2 new
Feature
Per-key rate limits
Set request ceilings on individual API keys from the dashboard.
Improvement
Faster dashboard load
The overview now paints in under a second on a cold start.
15
Avatars
Solid single-hue fills from the palette for editor attribution.
PN
MR
DA
SK
PN
MR
16
Modals
Publish-confirm lists what goes live. Digest-preview shows the send. Open on click; Esc / × / outside close.
Publish entry…
Preview & send digest…