Render with React. Send with NoticeAPI.
Keep components and previews in your app. Render HTML and text there; NoticeAPI handles domains, delivery, logs, webhooks, and recipient safeguards.
import { render } from "@react-email/render"
import { NoticeAPI } from "noticeapi"
const notice = new NoticeAPI(
process.env.NOTICEAPI_API_KEY!
)
const html = await render(
<Receipt order={order} />
)
await notice.emails.send({
from: "[email protected]",
to: customer.email,
html
})Code-owned templates
Your runtime renders. NoticeAPI sends and observes.
That boundary keeps arbitrary React out of the delivery backend and lets your normal application toolchain own component execution.
From component to recipient timeline in four calls.
Install React Email
Add @react-email/components and @react-email/render to the application that owns the template.
Render the component
Pass trusted application data into the component and render HTML and text in your runtime.
Send through NoticeAPI
Call the SDK or REST API with the compiled output, sender, recipient, subject, and idempotency key.
Follow the outcome
Read status from the API or subscribe to signed delivery, bounce, complaint, and suppression events.
Details, when you need them
Questions, answered.
Does NoticeAPI execute my React component?
No. Render the component in your application or build process. NoticeAPI receives compiled HTML and optional text for delivery.
Can I still use stored templates?
Yes. Dashboard and API-managed templates remain useful for content that should be editable outside the application. React Email is the code-owned path.
Keep the component model. Add the operating layer.
Use the tools React developers already understand while NoticeAPI handles the email infrastructure around the compiled message.