Agent skill

React Email

by aiskillstore in aiskillstore/marketplace

A skill your agent uses when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or…

MITAuto-check passedFrontend & Design

Install React Email

skills CLI
$ npx skills add aiskillstore/marketplace --skill react-email -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aiskillstore/marketplace react-email --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aiskillstore/marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/resend/react-email .claude/skills/react-email && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
react-email
GitHub stars
430
Used in
1 other repo
Token cost
~3.6k tokens
SKILL.md length
1,240 words
Files
10 (incl. references)
Skills in repo
1,085
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or…

  • Works in 4 steps: Brand colors - Ask for primary brand… → Logo - Ask if they have a logo file and… → Style preference - Professional, casual,… → …
  • Building HTML email templates with React components
  • SKILL.md covers Installation, Basic Email Template, Behavioral Guidelines and Essential Components, plus 11 more sections
  • Calls npm and npx; needs RESEND_API_KEY

What it does

React Email is an agent skill from aiskillstore/marketplace. Use when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or sending emails with Resend. Covers welcome emails, password resets, notifications, order confirmations, newsletters, transactional emails, and the embeddable email editor component.

Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including reference files (for example `README.md`, `TESTS.md` and `references/COMPONENTS.md`).

It sits in Frontend & Design, covering Transactional email, React components and Newsletters. It works with React and Tailwind CSS. The repository describes itself as: Security-audited skills for Claude, Codex & Claude Code. One-click install, quality verified. The licence is MIT.

When your agent uses it

  • Building HTML email templates with React components
  • Adding a visual email editor to an application using the React Email visual editor
  • Rendering emails to HTML
  • Sending emails with Resend

Example prompts

  • “/react-email”

Requirements

  • Node.js
  • A credential in RESEND_API_KEY

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Brand colors - Ask for primary brand color (hex code like #007bff)
  2. Logo - Ask if they have a logo file and its format (PNG/JPG only - warn if SVG/WEBP)
  3. Style preference - Professional, casual, or minimal tone
  4. Production URL - Where will static assets be hosted in production?

What it can do on your machine

Read from SKILL.md and the folder at commit 4ac52da. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • react.email
    • resend.com
    • caniemail.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • RESEND_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

React Email loads about 3.6k tokens when it runs, and up to ~22k if it reads all its reference files. Until then it costs about 92 tokens; SKILL.md has 1,240 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~92
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~22k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from aiskillstore/marketplace at commit 4ac52da, republished under its MIT licence (© aiskillstore). 1,240 words, ~3,592 tokens.

Download SKILL.mdSave it as .claude/skills/react-email/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
react-email
description
Use when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or sending emails with Resend. Covers welcome emails, password resets, notifications, order confirmations, newsletters, transactional emails, and the embeddable email editor component.
license
MIT
metadata.author
Resend
metadata.version
2.1.0
metadata.homepage
https://react.email
metadata.source
https://github.com/resend/react-email

React Email

Build and send HTML emails using React components. A modern, component-based approach to email development that works across all major email clients.

Installation

sh
npm i react-email

Or scaffold a new project:

sh
npx create-email@latest
cd react-email-starter
npm install
npm run dev

This works with any package manager (npm, yarn, pnpm, bun) — substitute accordingly.

The dev server runs at localhost:3000 with a preview interface for templates in the emails folder.

Adding to an Existing Project

Install the packages and add a script to your package.json:

json
{
  "scripts": {
    "email": "email dev --dir emails --port 3000"
  }
}

Make sure the path to the emails folder is relative to the base project directory. Ensure tsconfig.json includes proper support for JSX.

Basic Email Template

Create an email component with proper structure using the Tailwind component for styling:

tsx
import {
  Html,
  Head,
  Preview,
  Body,
  Container,
  Heading,
  Text,
  Button,
  Tailwind,
  pixelBasedPreset
} from 'react-email';

interface WelcomeEmailProps {
  name: string;
  verificationUrl: string;
}

export default function WelcomeEmail({ name, verificationUrl }: WelcomeEmailProps) {
  return (
    <Html lang="en">
      <Tailwind
        config={{
          presets: [pixelBasedPreset],
          theme: {
            extend: {
              colors: {
                brand: '#007bff',
              },
            },
          },
        }}
      >
        <Head />
        <Body className="bg-gray-100 font-sans">
          <Preview>Welcome - Verify your email</Preview>
          <Container className="max-w-xl mx-auto p-5">
            <Heading className="text-2xl text-gray-800">
              Welcome!
            </Heading>
            <Text className="text-base text-gray-800">
              Hi {name}, thanks for signing up!
            </Text>
            <Button
              href={verificationUrl}
              className="bg-brand text-white px-5 py-3 rounded block text-center no-underline box-border"
            >
              Verify Email
            </Button>
          </Container>
        </Body>
      </Tailwind>
    </Html>
  );
}

// Preview props for testing
WelcomeEmail.PreviewProps = {
  name: 'John Doe',
  verificationUrl: 'https://example.com/verify/abc123'
} satisfies WelcomeEmailProps;

export { WelcomeEmail };

Behavioral Guidelines

  • When iterating over the code, only update what the user asked for. Keep the rest intact.
  • If the user asks to use media queries, inform them that most email clients don't support them and suggest a different approach.
  • Never use template variables (like {{name}}) directly in TypeScript code. Instead, reference the underlying properties directly. If the user explicitly asks for {{variableName}}, place the mustache string only in PreviewProps, never in the component JSX:
typescript
const EmailTemplate = (props) => {
  return (
    <h1>Hello, {props.variableName}!</h1>
  );
}

EmailTemplate.PreviewProps = {
  variableName: "{{variableName}}",
};

export default EmailTemplate;
  • Never write the {{variableName}} pattern directly in the component structure. If the user insists, explain that this would make the template invalid.

Essential Components

See references/COMPONENTS.md for complete component documentation.

Core Structure:

  • Html - Root wrapper with lang attribute
  • Head - Meta elements, styles, fonts
  • Body - Main content wrapper
  • Container - Outermost centering wrapper (has built-in max-width: 37.5em). Use only once per email.
  • Section - Interior content blocks (no built-in max-width). Use for grouping content inside Container.
  • Row & Column - Multi-column layouts
  • Tailwind - Enables Tailwind CSS utility classes

Content:

  • Preview - Inbox preview text, always first inside <Body>
  • Heading - h1-h6 headings
  • Text - Paragraphs
  • Button - Styled link buttons (always include box-border)
  • Link - Hyperlinks
  • Img - Images (see Static Files section below)
  • Hr - Horizontal dividers

Specialized:

  • CodeBlock - Syntax-highlighted code
  • CodeInline - Inline code
  • Markdown - Render markdown
  • Font - Custom web fonts

Before Writing Code

When a user requests an email template, ask clarifying questions FIRST if they haven't provided:

  1. Brand colors - Ask for primary brand color (hex code like #007bff)
  2. Logo - Ask if they have a logo file and its format (PNG/JPG only - warn if SVG/WEBP)
  3. Style preference - Professional, casual, or minimal tone
  4. Production URL - Where will static assets be hosted in production?

Static Files and Images

Directory Structure

Local images must be placed in the static folder inside your emails directory:

project/
├── emails/
│   ├── welcome.tsx
│   └── static/           <-- Images go here
│       └── logo.png
Dev vs Production URLs

Use this pattern for images that work in both dev preview and production:

tsx
const baseURL = process.env.NODE_ENV === "production"
  ? "https://cdn.example.com"  // User's production CDN
  : "";

export default function Email() {
  return (
    <Img
      src={`${baseURL}/static/logo.png`}
      alt="Logo"
      width="150"
      height="50"
    />
  );
}

How it works:

  • Development: baseURL is empty, so URL is /static/logo.png - served by React Email's dev server
  • Production: baseURL is the CDN domain, so URL is https://cdn.example.com/static/logo.png

Important: Always ask the user for their production hosting URL. Do not hardcode localhost:3000.

Styling

See references/STYLING.md for comprehensive styling documentation including typography, layout patterns, dark mode, and brand consistency.

Key Rules
  • Use Tailwind with pixelBasedPreset (email clients don't support rem). Import pixelBasedPreset from react-email.
  • Never use flexbox or grid — use Row/Column components or tables for layouts.
  • Avoid CSS/Tailwind media queries (sm:, md:, lg:, xl:) — limited email client support.
  • Never use theme selectors (dark:, light:) — not supported.
  • Never use SVG or WEBP images — warn users about rendering issues.
  • Always specify border type (border-solid, border-dashed, etc.) — email clients don't inherit it.
  • For single-side borders, reset others first (border-none border-l border-solid).
Required Classes
ComponentRequired ClassWhy
Buttonbox-borderPrevents padding from overflowing the button width
Hr / any borderborder-solid (or border-dashed, etc.)Email clients don't inherit border type
Single-side bordersborder-none + the sideResets default borders on other sides
Structure Notes
  • Always define <Head /> inside <Tailwind> when using Tailwind CSS
  • <Preview> should always be the first element inside <Body>
  • Only include props in PreviewProps that the component actually uses
  • Use fixed width/height for known-size elements (logos, icons); responsive sizing (w-full, h-auto) for content images

Rendering

Convert to HTML
tsx
import { render } from 'react-email';
import { WelcomeEmail } from './emails/welcome';

const html = await render(
  <WelcomeEmail name="John" verificationUrl="https://example.com/verify" />
);
Convert to Plain Text
tsx
const text = await render(<WelcomeEmail name="John" verificationUrl="https://example.com/verify" />, { plainText: true });

Sending

React Email supports sending with any email service provider. See references/SENDING.md for complete sending documentation including Resend, Nodemailer, and SendGrid examples.

Quick example using the Resend SDK:

tsx
import { Resend } from 'resend';
import { WelcomeEmail } from './emails/welcome';

const resend = new Resend(process.env.RESEND_API_KEY);

const { data, error } = await resend.emails.send({
  from: 'Acme <onboarding@resend.dev>',
  to: ['user@example.com'],
  subject: 'Welcome to Acme',
  react: <WelcomeEmail name="John" verificationUrl="https://example.com/verify" />
});

The Resend Node SDK automatically handles both HTML and plain-text rendering.

CLI Commands

The react-email package provides a CLI accessible via the email command:

CommandDescription
email dev --dir <path> --port <port>Start the preview development server (default: ./emails, port 3000)
email build --dir <path>Build the preview app for production deployment
email startRun the built preview app
email export --outDir <path> --pretty --plainText --dir <path>Export templates to static HTML files
email resend setupConnect the CLI to your Resend account via API key
email resend resetRemove the stored Resend API key
Show full SKILL.md (471 more words)Show less

Internationalization

See references/I18N.md for complete i18n documentation. React Email supports three libraries: next-intl, react-i18next, and react-intl.

Email Editor

React Email includes a visual editor (@react-email/editor) that can be embedded in your app. It's built on TipTap/ProseMirror and produces email-ready HTML.

See references/EDITOR.md for complete documentation including:

  • EmailEditor — batteries-included component with bubble menus, slash commands, and theming
  • StarterKit — 35+ email-aware extensions (headings, lists, tables, columns, buttons, etc.)
  • Inspector — contextual sidebar for editing styles
  • EmailTheming — built-in themes (basic, minimal) with customizable CSS properties
  • composeReactEmail — export editor content to email-ready HTML and plain text
  • Custom extensions via EmailNode and EmailMark

Quick example:

tsx
import { EmailEditor, type EmailEditorRef } from '@react-email/editor';
import '@react-email/editor/themes/default.css';
import { useRef } from 'react';

export function MyEditor() {
  const ref = useRef<EmailEditorRef>(null);

  return (
    <EmailEditor
      ref={ref}
      content="<p>Start typing...</p>"
      theme="basic"
    />
  );
}

Common Patterns

See references/PATTERNS.md for complete examples including:

  • Password reset emails
  • Order confirmations with product lists
  • Notification emails with code blocks
  • Multi-column layouts
  • Team invitation emails

Email Best Practices

  1. Test across email clients - Gmail, Outlook, Apple Mail, Yahoo Mail
  2. Keep it responsive - Max-width around 600px, test on mobile
  3. Use absolute image URLs - Host on reliable CDN
  4. Write meaningful alt text - Describe purpose and details for content images; use alt="" for decorative images (spacers, dividers, background flourishes). React Email's <Img> defaults to alt="".
  5. Provide plain text version - Required for accessibility
  6. Keep file size under 102KB - Gmail clips larger emails
  7. Add proper TypeScript types - Define interfaces for all email props
  8. Include preview props - Add .PreviewProps for development testing
  9. Use verified domains - For production from addresses
Accessibility

React Email handles the structural defaults; the rest is content.

What React Email gives you for free:

  • <Html> sets lang and dir (defaults: lang="en" dir="ltr" — override per locale)
  • <Img> defaults to alt="" so decorative images are skipped by screen readers
  • <Markdown> renders layout tables with role="presentation"
  • <Preview> also emits a <title> tag

Upgrade with npm install react-email@latest to get these defaults.

What you still have to do (content choices):

  • Open with a single <Heading as="h1">, nest subheadings in order, never skip levels (very short SMS-style emails may skip the heading entirely)
  • Set descriptive alt on meaningful images; pass an explicit alt="" on decorative images — never omit the attribute
  • Linked images are never decorative. When an <Img> is inside a <Link> or <Button>, the alt must describe where the link goes — alt="" on a linked image leaves the link with no accessible name
  • Write link text that describes the destination (<Button>Read the report</Button>, not click here)
  • Hit 4.5:1 text contrast (WCAG AA); preview in dark mode
  • For layout tables you build by hand (outside <Markdown>), add role="presentation"
  • For non-English emails, pass the locale: <Html lang={locale} dir={isRTL ? 'rtl' : 'ltr'}> (see I18N.md)

For the full rule set, severity ranking, and authoring checklist, see the accessibility reference in the email-best-practices skill.

Additional Resources

© aiskillstore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files (references) in skills/resend/react-email of aiskillstore/marketplace.

  • SKILL.md
  • README.md
  • TESTS.md
  • references/COMPONENTS.md
  • references/EDITOR.md
  • references/I18N.md
  • references/PATTERNS.md
  • references/SENDING.md
  • references/STYLING.md
  • skill-report.json

Open the folder on GitHubat commit 4ac52da

Used in 1 other repository

We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in aiskillstore/marketplace, which our catalogue first saw on October 7, 2026.

Compare with similar skills

React Email next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

React Email compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
React Email this skillaiskillstore/marketplace4301 repos~3.6kAutomated safety check: PassMIT
React Emailviclafouch/meme-studio1102 repos~3.6kAutomated safety check: PassMIT
Web Artifacts Builderanthropics/skills180k40 repos~769Automated safety check: PassApache-2.0
Creative Tim UI Blockscreativetimofficial/ui12k—~2.1kAutomated safety check: NotesMIT
Dify Component Writing Guidelanggenius/dify158k—~626Automated safety check: PassCustom licence
Animated React Component LibrariesHainrixz/editor-pro-max2601 repos~5.7kAutomated safety check: PassCustom licence

Similar skills

  • React Email

    viclafouch/meme-studio

    A skill your agent uses when creating HTML email templates with React components - welcome emails, password resets, notifications, order confirmations, newsletters, or transactional emails.

    110 GitHub starsUsed in 2 repos~3.6k tokens
    Backend & APIsAuto-check passed
  • Web Artifacts Builder

    anthropics/skills

    Official

    Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.

    180k GitHub starsUsed in 40 repos~769 tokens
    Frontend & DesignAuto-check passed
  • Creative Tim UI Blocks

    creativetimofficial/ui

    Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.

    12k GitHub stars~2.1k tokensUpdated 6 mo ago
    Frontend & DesignAuto-check: notes
  • Use when implementing or refactoring React/TypeScript components and the task requires decisions about component ownership, feature boundaries, state, data…

    158k GitHub stars~626 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Animated React Component Libraries

    Hainrixz/editor-pro-max

    Helps choose and drop in animated React components from Magic UI and React Bits for landing pages, marketing sites and dashboards, instead of hand-coding animations.

    260 GitHub starsUsed in 1 repo~5.7k tokens
    Frontend & DesignAuto-check passed
  • Create Setting Item

    graphif/project-graph

    指导如何在 Project Graph 项目中创建新的设置项。当用户需要添加新的设置项、配置选项或需要了解设置系统的实现方式时使用此技能。

    4.5k GitHub stars~1.5k tokensUpdated today
    Frontend & DesignAuto-check passed

More from aiskillstore/marketplace

All 1,085 skills in this repo
  • Code Stats

    aiskillstore/marketplace

    Analyze codebase with tokei (fast line counts by language) and difft (semantic AST-aware diffs).

    430 GitHub starsUsed in 2 repos~697 tokens
    Auto-check: notes
  • Data Processing

    aiskillstore/marketplace

    Process JSON with jq and YAML/TOML with yq. An agent skill from aiskillstore/marketplace.

    430 GitHub starsUsed in 1 repo~720 tokens
    Auto-check: notes
  • Doc Scanner

    aiskillstore/marketplace

    Scans for project documentation files (AGENTS.md, CLAUDE.md, GEMINI.md, COPILOT.md, CURSOR.md, WARP.md, and 15+ other formats) and synthesizes guidance.

    430 GitHub starsUsed in 1 repo~644 tokens
    Auto-check: notes
  • File Search

    aiskillstore/marketplace

    Modern file and content search using fd, ripgrep (rg), and fzf.

    430 GitHub starsUsed in 1 repo~598 tokens
    Auto-check: notes
  • Find Replace

    aiskillstore/marketplace

    Modern find-and-replace using sd (simpler than sed) and batch replacement patterns.

    430 GitHub starsUsed in 1 repo~527 tokens
    Auto-check: notes
  • Investigating Codebases

    aiskillstore/marketplace

    Automatically activated when user asks how something works, wants to understand unfamiliar code, needs to explore a new codebase, or asks questions like "where is X implemented?", "how does Y…

    430 GitHub starsUsed in 1 repo~2.7k tokens
    Auto-check: notes

Questions about React Email

What does React Email do?

A skill your agent uses when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or…. React Email is an agent skill from aiskillstore/marketplace. Use when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or sending emails with Resend.

When should I use React Email?

React Email fits situations like: building HTML email templates with React components; adding a visual email editor to an application using the React Email visual editor; rendering emails to HTML; sending emails with Resend.

How do I install React Email in Claude Code?

Run `npx skills add aiskillstore/marketplace --skill react-email -a claude-code`. Or copy the skill folder (skills/resend/react-email in aiskillstore/marketplace) into .claude/skills/react-email in your project. Claude Code loads it when a task matches its description.

How do I install React Email in Codex?

Run `npx skills add aiskillstore/marketplace --skill react-email -a codex`. Or copy the skill folder (skills/resend/react-email in aiskillstore/marketplace) into .agents/skills/react-email in your project. Codex loads it when a task matches its description.

Can I use React Email in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aiskillstore/marketplace --skill react-email -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/react-email, .gemini/skills/react-email, .github/skills/react-email and .opencode/skills/react-email in your project.

What does React Email need to run?

Going by SKILL.md and its folder, React Email needs the command-line tools its instructions call (npm and npx) and credentials named RESEND_API_KEY. Our summary lists: Node.js; A credential in RESEND_API_KEY.

Does React Email access the network?

SKILL.md names 4 domains. As links in the text: github.com, react.email, resend.com and caniemail.com. This is read from the text; nothing was executed.

Is React Email safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does React Email use?

React Email is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does React Email use?

About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 18k tokens, read only when the agent opens those files.

What are the alternatives to React Email?

Skills that share tags, products or a category with React Email: React Email (viclafouch/meme-studio, 110 stars), Web Artifacts Builder (anthropics/skills, 180k stars), Creative Tim UI Blocks (creativetimofficial/ui, 12k stars) and Dify Component Writing Guide (langgenius/dify, 158k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains React Email?

aiskillstore (a GitHub organization) maintains it in aiskillstore/marketplace, which has 430 GitHub stars. The repository holds 1,085 skills in this directory. The repository was last updated on October 7, 2026.

Source: aiskillstore/marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.