v1.1.0 — queued sending: any list size on any plan
Campaign sends now go through a background queue instead of one long request:
POST /api/sendqueues and returns immediately; a minutely job deliversSEND_BATCHemails per run (default 40 — sized for the free plan). A 1,000-recipient campaign completes in ~25 minutes on the free plan.- Atomic claims (no double-sends), crash recovery after 10 minutes, up to 3 attempts per recipient.
- Unsubscribing also cancels queued-but-undelivered emails to that address.
- Optional
sendEmailBatch()hook insrc/email.ts: one API call for up to ~1,000 emails — with it even the free plan finishes big lists in minutes.
Changed: POST /api/send now returns { ok, queued }; the cron runs every minute (RSS check keeps its 15-minute cadence). Migration 0003 is append-only and applies automatically on your next deploy — see Updating.