email

Send transactional emails via provider-agnostic transports and React Email templates.

Updated May 7, 2026
One-click install
npx skills add https://github.com/johinsDev/loyalty-app --skill email-johinsdev
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: email
Source: https://github.com/johinsDev/loyalty-app/tree/main/.claude/skills/email
Command: npx skills add https://github.com/johinsDev/loyalty-app --skill email-johinsdev

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It streamlines sending transactional emails from the loyalty-app monorepo while keeping provider configuration, template rendering, and delivery debugging consistent across environments.

Core Features & Use Cases

  • Provider-agnostic sending: Use @loyalty/email to send via resend, log, folder, or outbox depending on environment and needs.
  • Typed email classes and fluent builder: Send one-off emails or reusable BaseEmail subclasses for welcome messages, password resets, OTPs, and points notifications.
  • React Email templates with branded layout: Author and preview templates in @loyalty/email-templates using React Email and a shared EmailLayout.
  • Dev and test workflows: Capture emails with FakeSender, view an outbox UI at /email-outbox, and support Playwright/e2e via the email outbox endpoint.

Quick Start

Send a transactional welcome email by telling the AI: "Use the email Skill to send a WelcomeEmail to [email protected] with a name and a CTA URL."

Frequently Asked Questions about email

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send transactional emails using React Email templates in a monorepo?

To send transactional emails with React Email templates, use a typed EmailManager to configure provider-agnostic transports and render branded HTML layouts for welcome messages, OTPs, and password resets. You can send one-off emails or reusable BaseEmail subclasses.

What is the best way to debug email delivery locally without sending real messages?

Email delivery debugging without sending real messages is handled by log, folder, and outbox transports. You can capture emails with a FakeSender and view rendered output in a local outbox UI to safely preview transactional templates.

Does this approach support switching between Resend and local logging for transactional emails?

Yes, switching between Resend and local logging for transactional emails is supported through environment-specific provider selection. You can configure transports to use Resend for production delivery and log or folder output for local testing.

Can I use Playwright e2e testing to verify transactional email content?

Yes, you can use Playwright e2e testing to verify transactional email content by accessing the email outbox endpoint. The outbox captures sent emails locally, allowing automated tests to assert rendered HTML and delivery metadata.

How do I create reusable transactional email classes for password resets and OTPs?

To create reusable transactional email classes for password resets and OTPs, subclass BaseEmail to encapsulate subject, template, and payload logic. This allows you to send typed EmailMessage objects through the EmailManager using fluent builders.

When should I use the outbox preview instead of a live email provider?

You should use the outbox preview instead of a live email provider in local and preview environments to avoid sending real emails. It captures outgoing messages for safe inspection, template rendering validation, and operational debugging.