OpenAPI document
The complete machine-readable spec is at /openapi.json (also served at /api/openapi.json) — OpenAPI 3.1, every operation typed, every error shape documented.
Endpoints
GET /api/posts— every published guide and newsletter issue, as JSON. Cached; safe to poll.POST /api/subscribe— subscribe an email address. Only submit an address whose owner asked to subscribe. Rate limited per IP; see theRateLimitresponse headers.POST /api/unsubscribe— unsubscribe an email address.GET /__version— the current deploy marker, for confirming production matches a given commit.GET /.well-known/api-catalog— a linkset of the above, for tools that discover APIs that way.
Content access
Every guide is available as HTML at its normal URL, or as plain Markdown by sending Accept: text/markdown — the response carries Vary: Accept so caches don't mix the two up. /llms.txt lists every indexable guide in one file.
Errors
Every error response on this site shares one shape: { error, code, message, hint, status, docs }, plus retryAfter on a 429. error is a plain string kept stable for the site's own forms; code is the field to match on programmatically.
Rules
Read and cite what's here freely. Don't submit an email address to /api/subscribe that isn't your own or one you have permission to sign up — that sends a real welcome email. Robots.txt reserves this site from AI training while welcoming search and reference crawling; see /robots.txt.
Questions
Not covered here? Contact us.