resend-email
Enforces Head Shakers Resend email conventions when implementing email sending, templates, batch operations, and newsletter broadcasts. This skill ensures consistent patterns for email service methods, error handling, retry logic, and Sentry integration.
When & Why to Use This Skill
This Claude skill automates the implementation of Resend email services by enforcing strict project-specific conventions. It streamlines the development of email templates, batch operations, and newsletter broadcasts while ensuring robust error handling, retry logic, and Sentry monitoring integration. By maintaining architectural consistency and preventing common anti-patterns, it helps developers build reliable, scalable, and compliant email infrastructure.
Use Cases
- Implementing automated transactional emails, such as waitlist confirmations and welcome sequences, with built-in circuit breaker protection and retry logic.
- Managing high-volume newsletter broadcasts and batch email operations (up to 100 emails per call) while ensuring mandatory compliance with unsubscribe link requirements.
- Developing complex React-based email templates within a standardized directory structure, ensuring all styles are inlined and conventions are followed.
- Integrating Sentry monitoring for email service failures to capture exceptions and breadcrumbs without exposing sensitive PII (Personally Identifiable Information).
| name | resend-email |
|---|---|
| description | Enforces project Resend email conventions when implementing email sending, templates, batch operations, and newsletter broadcasts. This skill ensures consistent patterns for email service methods, error handling, retry logic, and Sentry integration. |
Resend Email Skill
Purpose
This skill enforces the project Resend email conventions automatically during email implementation. It ensures consistent patterns for service architecture, email sending operations, template management, broadcast handling, error handling, and Sentry integration.
Activation
This skill activates when:
- Creating or modifying
src/lib/services/resend*.tsfiles - Working with email template files in
src/lib/email-templates/ - Implementing email sending operations via Resend
- Creating broadcast or newsletter functionality
- Any code that imports from
resendpackage - Files containing email-related operations (send, batch, broadcast)
Workflow
- Detect Resend email work (imports from
resendor uses ResendService patterns) - Load
references/Resend-Email-Conventions.md - Generate/modify code following all conventions
- Scan for violations of email patterns
- Auto-fix all violations (no permission needed)
- Report fixes applied
Key Patterns
Service Architecture
- Use
ResendServicestatic class pattern - Methods must have
Asyncsuffix for async operations - Apply circuit breaker protection via
circuitBreakers.externalService() - Implement retry logic via
withDatabaseRetry() - Add Sentry breadcrumbs on success, capture exceptions on failure
Email Sending
| Operation | Method | Limit |
|---|---|---|
| Single email | resend.emails.send() |
1 per call |
| Batch emails | resend.batch.send() |
Up to 100 per call |
| Broadcast | resend.broadcasts.create() + send() |
Audience-based |
Template Patterns
| Type | Use Case | Location |
|---|---|---|
| Inline HTML | Simple confirmations, notifications | Private static methods |
| React Email | Complex newsletters, rich content | src/lib/email-templates/ |
| Resend API Templates | Variable-based templates | Resend dashboard/API |
Error Handling
- Return
{ failedEmails, sentCount }for bulk operations - Return
booleanfor single operations - Use
level: 'warning'for non-critical failures - Never fail entire operation for partial failures
Broadcasts & Audiences
- Always include
{{{RESEND_UNSUBSCRIBE_URL}}}in broadcasts - Use variable syntax:
{{{VARIABLE|fallback}}} - Support scheduled sending via
scheduledAtparameter
Anti-Patterns to Avoid
- Never include PII in Sentry context
- Never skip circuit breaker protection
- Never exceed 100 emails per batch call
- Never hardcode email addresses
- Never send broadcasts without unsubscribe link
- Never use external CSS in email templates (inline only)
- Never skip retry logic for email operations
Usage Pattern Reference
| Use Case | Method | Skills Needed |
|---|---|---|
| Waitlist confirmation | sendWaitlistConfirmationAsync |
resend-email |
| Welcome email | sendNewsletterWelcomeAsync |
resend-email |
| Bulk notifications | sendLaunchNotificationsAsync |
resend-email |
| Newsletter broadcast | sendBroadcastAsync |
resend-email, sentry-monitoring |
| React template email | sendWithTemplateAsync |
resend-email |
References
references/Resend-Email-Conventions.md- Complete Resend email conventions