Claude Code skills · updated 2026-10-03
SendGrid to Resend migration skill for Claude Code — webhooks, templates by line
8 SendGrid lines in one mail file that break on Resend
On the bundled sample: 8 findings (8 errors, 0 warnings) in 1 file from 18 rules.
Get it on Whop - $12 onceGet it on Gumroad
Who it's for
For Node and Python teams moving transactional email from Twilio SendGrid to Resend.
What breaks, and when
sandboxMode has no Resend field, so the email is really sent. SendGrid event 'bounce' never arrives from Resend, so the bounce handler stops firing.
What it printed on the bundled example
== Resend Migration Check: SendGrid code lint — 8 findings (8 errors, 0 warnings) in 1 file · 18 rules
ERROR resend-sample.js:2 [sg-import-node]
@sendgrid/* package. Resend: npm i resend, then import { Resend } from 'resend'.
ERROR resend-sample.js:5 [sg-env-key]
SENDGRID_API_KEY holds an SG. key that Resend rejects. Resend: RESEND_API_KEY with a re_ key.
ERROR resend-sample.js:6 [sg-set-api-key]
SendGrid client setup. Resend: const resend = new Resend(process.env.RESEND_API_KEY).
ERROR resend-sample.js:13 [sg-dynamic-template]
SendGrid dynamic template id (d-...) exists only in your SendGrid account. Resend: rebuild the template on Resend or send rendered html/react.
What you get
- SKILL.md, an offline Node scanner and the 18-rule table
- file:line, severity and the Resend call to write
- SendGrid webhook events mapped to Resend types
- CI: node scripts/scan.js . exits 1 on any error
Install
Unzip into ~/.claude/skills/ (all projects) or your-repo/.claude/skills/ (one repo), then ask Claude Code: "We're switching our transactional email from SendGrid to Resend next sprint. What in this repo has to change? Don't edit anything yet.". Needs Node 16+.
unzip sendgrid-to-resend-migration.zip -d ~/.claude/skills/
Ask Claude
“We're switching our transactional email from SendGrid to Resend next sprint. What in this repo has to change? Don't edit anything yet.”
What it does not do
It calls neither SendGrid nor Resend and needs no API key. No network calls, no edits without your OK.
FAQ
What is a Claude Code skill?
A folder with a SKILL.md and scripts that Claude Code loads when your request matches it. You ask in plain words and Claude runs the scanner the skill carries.
How is this different from asking Claude without the skill?
The skill carries a dated rule table and a scanner that reads every file, so Claude quotes the exact date and line instead of answering from memory.
Does it send my code anywhere?
It calls neither SendGrid nor Resend and needs no API key. No network calls, no edits without your OK.
How do I install it?
Unzip into ~/.claude/skills/ (all projects) or your-repo/.claude/skills/ (one repo), then ask Claude Code: "We're switching our transactional email from SendGrid to Resend next sprint. What in this repo has to change? Don't edit anything yet.". Needs Node 16+.
What do I get when I buy?
The zip. On Whop it is in your library as a download lesson with the zip attached; on Gumroad it is the product file.