# Edge runtime: keep the send fetch-shaped
The `react` prop relies on the Node.js SDK's component rendering. The API
reference says it is only available in the Node.js SDK, so on an edge runtime
do not depend on that path. Render first, then send plain `html`.
```ts
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
export async function POST() {
const html = renderMyTemplateToString();
const { data, error } = await resend.emails.send({
from: '[SENDER]',
to: ['[RECIPIENT]'],
subject: 'Hello World',
html,
});
if (error) {
return Response.json({ error }, { status: 400 });
}
return Response.json({ id: data.id });
}
```
If the SDK itself is unavailable on your runtime, the underlying API is plain
HTTPS: POST to https://api.resend.com/emails with an Authorization Bearer
header and a JSON body. That shape works anywhere fetch works.
## Checklist
- On edge, pass `html` you rendered yourself. Do not assume the SDK will render
a React component for you there.
- The key still comes from the environment. Edge does not change key hygiene.
- Prefer the SDK when it loads; fall back to raw fetch only when the runtime
cannot run it.