vercel-labs avatar

React Email

This is a JSON-to-email renderer built on React Email. You define your email structure as a flat JSON spec with elements and props, then render it server-side to HTML or plain text. It's useful when you need to generate transactional emails from data, let AI build email templates from specs, or maintain email catalogs without writing JSX everywhere. The element tree model matches json-render/react, so you get the same conditional rendering and state expressions. Ships with standard components for everything from buttons to markdown, all using inline styles for email client compatibility. The server-safe import path lets you validate specs without pulling in React dependencies.

skills.sh installs
1.4K
GitHub stars
19.5K
last updated
Aug 21, 2026

Install

$ npx -y skills add vercel-labs/json-render --skill react-email --agent claude-code

Installs into .claude/skills of the current project.

Files

@json-render/react-email

React Email renderer that converts JSON specs into HTML or plain-text email output.

Quick Start

import { renderToHtml } from "@json-render/react-email";
import { schema, standardComponentDefinitions } from "@json-render/react-email";
import { defineCatalog } from "@json-render/core";

const catalog = defineCatalog(schema, {
  components: standardComponentDefinitions,
});

const spec = {
  root: "html-1",
  elements: {
    "html-1": { type: "Html", props: { lang: "en", dir: "ltr" }, children: ["head-1", "body-1"] },
    "head-1": { type: "Head", props: {}, children: [] },
    "body-1": {
      type: "Body",
      props: { style: { backgroundColor: "#f6f9fc" } },
      children: ["container-1"],
    },
    "container-1": {
      type: "Container",
      props: { style: { maxWidth: "600px", margin: "0 auto", padding: "20px" } },
      children: ["heading-1", "text-1"],
    },
    "heading-1": { type: "Heading", props: { text: "Welcome" }, children: [] },
    "text-1": { type: "Text", props: { text: "Thanks for signing up." }, children: [] },
  },
};

const html = await renderToHtml(spec);

Spec Structure (Element Tree)

Sponsors

Details

Repository
github.com/vercel-labs/json-render
Categories
Frontend Development, AI & Agent Building, Marketing & SEO, Cloud & Infrastructure
First seen
May 16, 2026

More from vercel-labs/json-render

All 31
1mindrally avatarnextjs-typescript-tailwindcss-supabasemindrally/skillsFull-stack Next.js 14 development with TypeScript, TailwindCSS, and Supabase for building production-ready web applications.1.4Kskills.sh installs
2iress avatarui-doctoriress/design-systemAudit and review application UI for IDS compliance, accessibility, usability, and cognitive load. Covers component usage validation, WCAG accessibility checks, 1.3Kskills.sh installs
3mindrally avatarcssmindrally/skillsBest practices for CSS development including modern layout techniques, naming conventions, theming, and maintainable stylesheet architecture1.2Kskills.sh installs
4capawesome-team avatarcapacitor-reactcapawesome-team/skillsGuides the agent through Capacitor app development with React — project structure, hooks for native features, state management patterns, using Capacitor plugins1.2Kskills.sh installs
5patternsdev avatarhooks-patternpatternsdev/skillsTeaches React Hooks for reusing stateful logic across components. Use when extracting shared behavior like form handling, subscriptions, or side effects into re1.2Kskills.sh installs
6patternsdev avatarreact-composition-2026patternsdev/skillsTeaches modern React composition patterns for 2025/2026. Use when designing component APIs, building shared UI libraries, or refactoring prop-heavy components.1.2Kskills.sh installs