Documentation

Documentation

How to take Kestrel from a cloned repo to a live newsletter — the run-once, out-of-band steps against your own Cloudflare account, DNS, and email provider.

  1. 01 Operator setup guide How to take Kestrel from a cloned repo to a live newsletter. This is the deploy & operate companion to the two other documents in this repo:
  2. 02 Provision the instance Stand up the Cloudflare resources the Worker binds to, fill their ids into wrangler.jsonc, run the migrations, and deploy. Do the whole sequence…
  3. 03 Access — the admin gate In deployed environments the admin surface is gated by Cloudflare Access at the edge, and re-verified in-app as defense in depth…
  4. 04 Connect an email sender Kestrel treats the email provider as transport behind a two-method seam (sendBatch + parseWebhook); the app owns the list, consent, deliveries, and…
  5. 05 Sending-domain DNS Bulk mail lands in spam or is rejected outright without SPF, DKIM, and DMARC on the sending domain. Publish all three on send.example.com — the…
  6. 06 Wire the archive to a website Every post has a permanent archive URL — its "view in browser" link and every shared link (docs/SPEC.md §5, I3). Where that URL lives is a choice.…
  7. 07 Verify it works Email's real failure modes — DKIM alignment, inbox rendering, the bounce webhook round-trip, one-click unsubscribe in a real client — only appear…
  8. 08 Connect Claude to the API This page covers connecting Claude Code to a deployed Kestrel instance. Once connected, Claude can draft, edit, and proofread your posts, and…