1. Install dependencies

Get the @react-email/render package and the SendGrid Node.js SDK.

npm install @react-email/render @sendgrid/mail

2. Create an email using React

Start by building your email template in a .jsx or .tsx file.

email.jsx
import * as React from 'react';
import { Html } from '@react-email/html';
import { Button } from '@react-email/button';

export function Email(props) {
  const { url } = props;

  return (
    <Html lang="en">
      <Button href={url}>Click me</Button>
    </Html>
  );
}

3. Convert to HTML and send email

Import the email template you just built, convert into a HTML string, and use the SendGrid SDK to send it.

import { render } from '@react-email/render';
import sendgrid from '@sendgrid/mail';
import { Email } from './email';

sendgrid.setApiKey(process.env.SENDGRID_API_KEY);

const emailHtml = render(<Email url="https://example.com" />);

const options = {
  from: 'you@example.com',
  to: 'user@gmail.com',
  subject: 'hello world',
  html: emailHtml,
};

sendgrid.send(options);

Try it yourself

SendGrid example

See the full source code.