Skip to content
StackQuay

Playbook · Resend

Bilingual newsletter with Resend (EN + 繁中)

Verify your domain, set signup copy, and send Broadcasts in English and Traditional Chinese.

2026-10-16

Who it’s for / not for

ForNot for
HK / TW / overseas builders following this agent-shipping playbook hubBulk cold email / purchased lists (consent required — human must verify local rules)
People who want Dashboard Broadcasts first, API laterTeams that need a full ESP migration playbook in this draft
Bilingual issues (EN primary + 繁中 twin, or two Topics)Promising subscriber counts you have not measured

Stack (spine only)

Secondary (later): Automations welcome sequence, React Email templates, MCP for agents.

  • Resend — domain verify, API key, transactional Sending + marketing Broadcasts
  • Contacts / Segments / Topics — list org (Audiences docs now describe the Contacts model)
  • Vercel — site signup form → add Contact (wire-up in a later page)
  • Stripe Payment Links — optional paid offer mentioned in issues only after human OK

Bot vs human

Bot doesHuman must do
Draft issue outlines + this playbookOwn the domain + Resend account; add DNS records
Draft signup copy (EN + 繁中) for batch approveCreate API keys; never paste secrets into chat/content
Suggest Segment / Topic namesClick Send on Broadcasts; confirm consent language
Recap open/click *after* you have real metricsYou read the issue before you press Send
You press SendPost social CTAs yourself in weekly batches

Numbered steps

  1. Prerequisites. You need (a) a domain you own, verified with Resend; (b) a Resend API key (docs home). Human must verify: domain purchase / DNS host access (buying a domain is your call).
  2. Add and verify a domain (add-a-domain, domains intro). Dashboard → Domains → Add Domain → prefer a subdomain (e.g. updates.example.com) for reputation isolation → choose sending region closest to recipients → copy DKIM / SPF exactly into DNS → wait (often ~15 minutes; can take up to 72 hours) → optionally add DMARC after verify. Do not proxy CNAMEs (e.g. Cloudflare orange cloud) or verification can fail.
  3. Create an API key. Needed for app / Vercel signup wiring later. Store only in env vars on machines you control. Bot does not need the live key to draft content.
  4. Understand email types. Transactional Sending is event-driven (emails intro). Broadcasts are newsletters, changelogs, launches (broadcasts intro). This playbook’s newsletter = Broadcasts.
  5. Contacts, Segments, Topics (audiences/contacts intro). Contact = one email. Segment = internal grouping for who receives a Broadcast (a Contact must belong to a Segment). Topic (optional) = recipient-visible preference so people can unsubscribe from one topic. Suggested starter: Segment playbook-subscribers; Topics en-newsletter, zh-newsletter (or one Topic newsletter + bilingual body). Human must verify: which bilingual strategy you want before first send.
  6. Add Contacts. Dashboard: Audience → Add contacts → Add Manually or CSV; or Contacts API / CLI / Automations. Email is required; assign a Segment.
  7. Compose a Broadcast. Create a draft in the no-code editor; you can send yourself a test before Contacts exist, but you need a Segment before the real send. Pick Segment + optional Topic. Schedule or send.
  8. Bilingual pattern (pick one for v1). A. One Broadcast, EN first + 繁中 section below. B. Two Broadcasts / Topics (en-newsletter / zh-newsletter). Bot drafts both languages; you approve the batch.
  9. Add a Contact. In the Dashboard, or from your own server action, add the address to a Segment. A manual Dashboard add is enough while you are setting the list up.
  10. Measure without lying. Broadcasts Dashboard shows delivery / open / click when tracking is enabled. Cite only numbers you actually exported. No “join 10k”.

Failure modes / HK caveats

  • No domain yet — Resend requires a domain you own. Buying one is your decision.
  • DNS / MX conflicts — subdomain is usually safer for marketing mail.
  • resend.dev limits — do not use shared resend.dev for arbitrary recipients; use your verified domain for real subscribers.
  • Consent — HK PDPO / marketing consent expectations: human must verify; this page is not legal advice.
  • Audiences → Contacts rename — older “Audience” tutorials map to current Contacts + Segments docs.
  • Unsubscribe — don’t remove footers. Respect global unsubscribes.
  • Spam / warm-up — sudden volume to cold addresses hurts; start small. Not inventing rates here.
  • You press Send — you post, and you press Send.

Newsletter CTA

Next checklist: Segments and Contacts, then Broadcast drafts.

Human must verify

  1. Domain registrar + DNS edit access; subdomain choice; region selection.
  2. DKIM/SPF/DMARC records match Resend exactly; no proxied CNAME.
  3. API key storage (env only); rotation if leaked.
  4. Opt-in / consent wording for HK (and any other) recipients — legal review if needed.
  5. Bilingual strategy A vs B before first Broadcast.
  6. Open/click tracking enabled only if you accept the privacy tradeoff.
  7. You decide what goes in the issue before you press Send.
  8. Exact Resend pricing / quotas for your plan (not quoted here — check Billing docs when you subscribe).

Doc gaps

Pricing / free-tier limits are not copied here (check Resend Billing). Exact PDPO marketing-email rules are not in Resend docs — confirm with counsel if you need to. Not legal advice.

Docs cited

Related playbooks