Why this matters
ReachOut renders every template with React Email components, so messages get the table-based, client-tested markup React Email is known for without a build step. You write the body in Markdown, add email components where layout matters, and personalize it with contact placeholders; ReachOut does the rendering at send time.
What you get
- Rendered with @react-email/components and Tailwind classes — no hand-written email HTML.
- Markdown for copy, plus <EmailSection>, <EmailHeading>, <EmailText> and <EmailButton> for layout.
- Placeholders such as {{ contact.firstName }} and your custom fields are filled per recipient.
- Unsupported elements and placeholders are reported instead of being sent broken.
Setup in 4 steps
- Write the body.Use Markdown for text and the email components for layout. Placeholders read contact.* only, including custom fields such as {{ contact.plan }}.
- Create the template.Studio → Templates → New template: name, subject, optional preheader and body. Or POST to /api/projects/YOUR_PROJECT_ID/templates with the same fields.
- Preview it.Preview the template against a contact before sending, in Studio or with POST /api/projects/YOUR_PROJECT_ID/templates/:templateId/preview.
- Send it with a campaign.Studio → Campaigns → New campaign. Pick the template and the segment, then send now or schedule it.
Example
<EmailHeading as="h1">Welcome, {{ contact.firstName }}.</EmailHeading>
You're on the **{{ contact.plan }}** plan. Here's what to do next:
- Connect your website
- Import your contacts
<EmailButton href="https://usereachout.com/studio">Open Studio</EmailButton>