Find the right place to send email in your framework. Then trace what happens after the API call.
Choose a runtime-specific guide for the server boundary, retry model, and webhook shape your application actually uses—from Next.js Route Handlers to Phoenix and Oban.
✓15 guides for full-stack frameworks, backend services, edge runtimes, and Vite frontends.
One request, complete trace
Request
POST /api/v1/emails
Authorization: Bearer aem_…
Idempotency-Key: welcome-8f21
{ "to": "[email protected]", "template": "welcome" }
202 Accepted
{ "id": "msg_7ca31", "status": "queued" }
[ 01 / 03 ]Choose a framework
Pick the guide that matches your production runtime.
Next.js
Integrate through Route Handlers and Server Actions.
Nuxt
Integrate through Nitro server routes.
Vite
Integrate through a small server endpoint beside your Vite app.
Express
Integrate through an Express route or service module.
Hono
Integrate through a typed Hono handler.
Remix
Integrate through actions and server loaders.
SvelteKit
Integrate through server routes and form actions.
Astro
Integrate through API routes and server islands.
Laravel
Integrate through jobs, notifications, and controllers.
Django
Integrate through views, signals, and background tasks.
FastAPI
Integrate through typed endpoints and background tasks.
Rails
Integrate through mailers, jobs, and service objects.
Spring Boot
Integrate through services, events, and scheduled jobs.
ASP.NET
Integrate through minimal APIs, controllers, and hosted services.
Phoenix
Integrate through controllers, contexts, and Oban jobs.
[ 02 / 03 ]Every guide
Every guide answers the four questions that break in production.
Where does the key live?
Use the framework's private server configuration rather than a public or bundled environment value.
What owns retries?
Decide whether the accepted API response is enough or local work needs a durable queue.
How is delivery confirmed?
Keep the message ID and verify the webhook against the original request body.
Covered in every guide
- Server boundary
- Environment configuration
- Send example
- Delivery event handling
[ 03 / 03 ]Framework versus language
Choose the guide that answers the question you have.
Framework guides show where email work fits: Route Handlers, actions, jobs, services, or background workers. Language guides focus on clients, request types, structured errors, and webhook verification. Both use the same HTTP contract.
- Start with a framework guide when placement, deployment, and runtime boundaries are unclear.
- Start with a language guide when you already know the architecture and need request-level code.
- Use the API reference when you need the exact operation, payload, or error envelope.
Questions people ask us
Put email in the right part of your application.
Choose your framework, queue one real message, and build the delivery return path from the start.