What problem does it solve?
It solves the problem of sending reliable transactional emails without scattering provider-specific code, templates, and configuration checks across your app.
Core Features & Use Cases
- Unified send dispatcher: Use
sendEmail() to send through Resend or SMTP based on EMAIL_PROVIDER, returning a consistent success/error result.
- Provider abstraction with safety guards: Centralize configuration and readiness checks via
isEmailReady() and env resolution so flows degrade gracefully when email is not configured.
- Reusable transactional templates: Send HTML + text fallbacks for magic links, password reset, verification, invites, login alerts, and notifications using the shipped template set and layout helpers.
- Anti–anti-pattern enforcement: Prevent direct Resend/nodemailer instantiation and raw API calls by routing everything through the kit’s email layer.
Quick Start
Use the sk-email skill to send a password reset email to a user by calling sendEmail with passwordResetEmail({ url, userName }) and passwordResetEmailText({ userName }) after checking isEmailReady().