email-best-practices
Skill0 starsChanged 42 days agoMITView on GitHub
Use when building email features, emails going to spam, high bounce rates, setting up SPF/DKIM/DMARC authentication, implementing email capture, ensuring compliance (CAN-SPAM, GDPR, CASL), handling webhooks, retry logic, making emails accessible (alt text, headings, contrast, screen readers), or deciding transactional vs marketing.
12 other projects use a version of this, 3 of them edited.
Adopted by
Most recently taken up by
- TommyBez/skillsboardword for word, first seen Oct 25, 2026
- Groundmail/groundmail-skillstheir own version, first seen Oct 17, 2026
- gerald-donkor/poli-intelword for word, first seen Oct 11, 2026
- sirakinb/claude-code-skillsedited, first seen Oct 11, 2026
- usenotra/notraword for word, first seen Oct 9, 2026
- mezotv/notraword for word, first seen Oct 8, 2026
Used with
Projects with it also use resend-cli, agent-email-inbox and 4 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
resendSkillresend-cli
Operate the Resend platform from the terminal — send emails (including React Email .tsx templates via --react-email), manage domains, contacts, broadcasts, templates, webhooks, API keys, logs, automations, and events via the `resend` CLI. Use when the user wants to run Resend commands in the shell, scripts, or CI/CD pipelines, or send/preview React Email templates. Always load this skill before running `resend` commands — it contains the non-interactive flag contract and gotchas that prevent silent failures.
Also in 4 projects that use this
MoizIbnYousafSkillagent-email-inbox
Use when setting up a secure email inbox for any AI agent — configuring inbound email via Resend, webhooks, tunneling for local development, and implementing security measures to prevent prompt injection attacks. Also use when someone mentions 'agent email', 'bot inbox', 'receive emails for agent', 'agent webhook', 'email security for AI', 'prompt injection via email', 'inbound email for bot', or wants their AI agent to receive and respond to emails securely.
Also in 3 projects that use this
VercelSkillresend
Emulated Resend email API for local development and testing. Use when the user needs to send emails locally, test transactional email flows, implement magic link or verification code auth, inspect sent emails, manage domains/contacts/API keys, or work with the Resend API without sending real emails. Triggers include "Resend API", "emulate Resend", "send email locally", "test email", "magic link", "verification email", "email inbox", "RESEND_BASE_URL", or any task requiring a local email API.
Also in 4 projects that use this
VercelSkillnext-cache-components-optimizer
Optimize the meaningful UI available immediately from a Next.js route on an initial load (hard navigation) or named client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route and entry point at a time; the shipped test then guards against regression. Use when asked to grow a static shell, fix a slow first paint or non-instant navigation, diagnose which Suspense boundary blocks useful UI, or add instant() regression coverage. Requires Next.js 16.3+ with Cache Components already adopted.
Also in 3 projects that use this
VercelSkillai-sdk
Answer questions about the AI SDK and help build AI-powered features. Use when developers: (1) Ask about AI SDK functions like generateText, streamText, ToolLoopAgent, embed, or tools, (2) Want to build AI agents, chatbots, RAG systems, or text generation features, (3) Have questions about AI providers (OpenAI, Anthropic, Google, etc.), streaming, tool calling, structured output, or embeddings, (4) Use React hooks like useChat or useCompletion. Triggers on: "AI SDK", "Vercel AI SDK", "generateText", "streamText", "add AI to my app", "build an agent", "tool calling", "structured output", "useChat".
Also in 3 projects that use this
GoogleSkillgrill-me
A relentless interview to sharpen a plan or design.
Also in 3 projects that use this
Other versions12 projects use a version of this.
Word for word · 7
- mezotv/notra★ 256100% same
- usenotra/notra★ 256100% same
- resend/resend-skills★ 211100% same
- TommyBez/skillsboard★ 10100% same
- nezaboravi/orkestar★ 2100% same
- gerald-donkor/poli-intel★ 1100% same
- sprioleau/flock★ 1100% same
Edited · 3
- novuhq/novu★ 40k69% same
- utxo-AG/claude-skills★ 269% same
- sirakinb/claude-code-skills★ 169% same
Wrote their own version · 2
- danest/emailbump-skills★ 0same name
- Groundmail/groundmail-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository42 other files it gives its agents.
- skills/composition-patterns/AGENTS.mdAGENTS.md
- skills/react-view-transitions/AGENTS.mdAGENTS.md
- skills/vercel-optimize/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- skills/last30days/CLAUDE.mdCLAUDE.md
- banner-designSkill
- brandSkill
- cascade-brainSkill
- cascade-discoverSkill
- cavemanSkill
- cdt-a11y-debuggingSkill
- cdt-chrome-devtools-cliSkill
- cdt-chrome-devtoolsSkill
- cdt-cookie-debuggingSkill
- cdt-debug-optimize-lcpSkill
- cdt-memory-leak-debuggingSkill
- cdt-troubleshootingSkill
- vercel-composition-patternsSkill
- core-web-vitalsSkill
- designSkill
- design-systemSkill
- efficiencySkill
- frontend-slidesSkill
- grill-with-docsSkill
- humanizerSkill
- improve-codebase-architectureSkill
- job-search-kitSkill
- last30daysSkill
- react-emailSkill
- vercel-react-view-transitionsSkill
- seo-localSkill
- seo-mapsSkill
- slidesSkill
- ui-stylingSkill
- ui-ux-pro-maxSkill
- vercel-optimizeSkill
- web-design-guidelinesSkill
- web-quality-auditSkill
- wq-accessibilitySkill
- wq-best-practicesSkill
- wq-performanceSkill
- wq-seoSkill
The file
We split this skill into the rules it gives an agent
4 rules. 4 are common, 0 are distinctive, and 0 are very specific to this project.
4
Common
Most of the 5 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Common: line 61
Start with the Catalog to plan which emails your app needs (password reset, verification, etc.), then set up Deliverability (DNS …
- Common: line 64
Check Deliverability first—authentication problems are the most common cause.
- Common: line 67
Follow this path: Email Capture (collect consent) → Compliance (legal requirements) → Marketing Emails (best practices).
- Common: line 70
Add reliability: Sending Reliability (retry + idempotency) → Webhooks & Events (track delivery) → List Management (handle bounces).
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Email Best Practices
Guidance for building deliverable, compliant, user-friendly emails.
Architecture Overview
[User] → [Email Form] → [Validation] → [Double Opt-In]
↓
[Consent Recorded]
↓
[Suppression Check] ←──────────────[Ready to Send]
↓
[Idempotent Send + Retry] ──────→ [Email API]
↓
[Webhook Events]
↓
┌────────┬────────┬─────────────┐
↓ ↓ ↓ ↓
Delivered Bounced Complained Opened/Clicked
↓ ↓
[Suppression List Updated]
↓
[List Hygiene Jobs]Quick Reference
| Need to... | See |
| Set up SPF/DKIM/DMARC, fix spam issues | Deliverability |
| Build password reset, OTP, confirmations | Transactional Emails |
| Plan which emails your app needs | Transactional Email Catalog |
| Build newsletter signup, validate emails | Email Capture |
| Send newsletters, promotions | Marketing Emails |
| Ensure CAN-SPAM/GDPR/CASL compliance | Compliance |
| Decide transactional vs marketing | Email Types |
| Handle retries, idempotency, errors | Sending Reliability |
| Process delivery events, set up webhooks | Webhooks & Events |
| Manage bounces, complaints, suppression | List Management |
| Make emails accessible (screen readers, alt text, contrast) | Accessibility |
Start Here
New app? Start with the Catalog to plan which emails your app needs (password reset, verification, etc.), then set up Deliverability (DNS authentication) before sending your first email.
Spam issues? Check Deliverability first—authentication problems are the most common cause. Gmail/Yahoo reject unauthenticated emails.
Marketing emails? Follow this path: Email Capture (collect consent) → Compliance (legal requirements) → Marketing Emails (best practices).
Production-ready sending? Add reliability: Sending Reliability (retry + idempotency) → Webhooks & Events (track delivery) → List Management (handle bounces).
Accessibility?
Most emails fail basic accessibility checks. See Accessibility for lang/dir, presentational tables, headings, alt text, <title>, and contrast.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

