move your newsletter to resend.
A free 5-lesson course: check if Resend fits, verify your sending domain, build templates as code with Claude Code, move contacts without re-subscribing anyone, and send your first broadcast.
For: Teams on Klaviyo or ActiveCampaign who mostly send newsletters or emails triggered by their own app.
Your progress
0% complete
0 of 5 lessons · ~90 min left
Lesson 1 of 5: Is Resend right for you? · all lessons
Lesson notes
Everything in the course on one page, for reference.
1.Is Resend right for you?
Goal: Decide in five minutes whether to move, or to keep your platform and connect Claude to it. (10 min)
- List the flows you rely on: welcome, abandoned cart, browse, win-back, newsletter.
- If Shopify-driven flows, revenue attribution or SMS drive your decisions, stay. Klaviyo does those well, and ActiveCampaign ships an official MCP server for Claude.
- If you mostly send newsletters and emails triggered by your own app, Resend fits: templates live in code and an AI agent can run them.
Here is everything our email platform does for us and what we pay: [paste] Should we move to Resend or stay and connect AI to our current tool? List what we'd lose, what we'd gain, and the riskiest part of moving.
Done when: You've written down "move" or "stay", and the one feature that decided it.
2.Verify your sending domain
Goal: Send from your own domain with SPF and DKIM set up, so your emails land in the inbox. (20 min)
- In Resend, go to Domains → Add Domain. Use a subdomain such as updates.yourdomain.com. Resend strongly recommends this, and it protects your main domain's reputation.
- Pick the sending region closest to your readers.
- Copy each DNS record exactly as Resend shows it into your DNS host. On Cloudflare, turn the proxy (orange cloud) off for these records.
- Wait for verification: often 15 minutes, up to 72 hours. Then add a DMARC record.
Done when: Your sending domain shows Verified in Resend.
3.Templates as code, built by Claude Code
Goal: Build one branded newsletter template you'll reuse for every issue. (25 min)
- Ask Claude Code to set up a React Email project in a new folder or your website repo.
- Describe the layout: header, headline, three short items, one button, footer with an unsubscribe link.
- Preview it locally, then check mobile and dark mode.
- Commit it to git. From now on, changes are reviewable and reversible.
Set up a React Email template for our newsletter in ./emails. Props: headline, intro, items (title, summary, url), ctaLabel, ctaUrl. Brand: background #050403, text #F5F2E9, accent #B0EB52, Inter font with system fallbacks. Footer with our address and an unsubscribe link placeholder. Make it readable in dark mode and on mobile. Add a preview script and tell me how to run it.
Done when: The preview looks right on desktop, mobile and dark mode, and it's committed to git.
4.Move your contacts, and your unsubscribes
Goal: Import only people who agreed to hear from you, and never re-subscribe anyone by accident. (20 min)
- Export subscribed contacts to CSV. Separately export unsubscribed, bounced and suppressed contacts.
- Ask Claude to clean the subscribed list: remove duplicates and invalid addresses, and remove anyone who appears in the unsubscribed or bounced file.
- Import the clean CSV into Resend contacts and create a segment for the newsletter.
- Keep the unsubscribed list. Those people must stay unsubscribed.
File A is our subscribed contacts, File B is unsubscribed/bounced/suppressed. Produce a clean CSV of File A minus anyone in File B, with duplicates and invalid emails removed. Report how many you removed and why. [attach both files]
Done when: Counts add up, and nobody from the unsubscribed file is in your sending segment.
5.Send your first broadcast
Goal: Send a clean first issue, then retire the old platform safely. (15 min)
- Create a broadcast in the Resend editor, or via the API from your template.
- Send a test to yourself. Check links, images, the unsubscribe link and the from address.
- Choose your newsletter segment and schedule the send.
- Watch bounces and complaints for a week. Keep the old account until two sends are clean, then cancel at renewal.
Done when: First broadcast sent, with bounces and complaints at normal levels.
Sources (checked October 2026)