SuperSend TX + Bolt.new

Add transactional email to a Bolt-generated app with a .env secret and a chat prompt. Bolt often outputs Vite or React projects — keep sends on the server.

When to use SuperSend TX

  • Bolt prototypes that need real password-reset or notification email
  • Moving from demo to production with your own sending domain
  • Replacing a RESEND_API_KEY pattern with SuperSend TX (SUPERSENDTX_API_KEY)

1. Add your API key

  1. Get a key from app.supersendtx.com.
  2. In the Bolt project, add to .env (local) and your host’s env UI when you deploy:
SUPERSENDTX_API_KEY=stx_your_key_here
  1. Ensure .env is in .gitignore — never commit stx_ keys.

If Bolt deploys to a platform with its own env panel (Netlify, Vercel, etc.), add the same variable there for production.

2. Paste this prompt in Bolt chat

Integrate SuperSend TX transactional email into this project.

Docs:
- https://docs.supersendtx.com/ai/agent-skill
- https://docs.supersendtx.com/openapi.yaml
- https://docs.supersendtx.com/builders/bolt

Rules:
1. Use SUPERSENDTX_API_KEY from .env on the server only — never in client bundles or VITE_ prefixed vars.
2. POST https://api.supersendtx.com/emails with Authorization: Bearer and JSON body (from, to, subject, html).
3. Until domain verify: sandbox from "noreply@mail.supersendtx.com", to account email only.
4. Add a small API route or serverless function for transactional sends; do not call the API from the browser.
5. If this is Next.js, follow the App Router server pattern in https://docs.supersendtx.com/frameworks/nextjs

After domain verify, use from on our verified domain.

3. Server-only pattern

Bolt may generate a Vite SPA. Add a server endpoint (or deploy a small API route) that proxies to SuperSend TX:

// Example: server handler (adapt to your Bolt stack)
export async function sendTransactionalEmail(payload: {
  to: string
  subject: string
  html: string
}) {
  const res = await fetch('https://api.supersendtx.com/emails', {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.SUPERSENDTX_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      from: process.env.MAIL_FROM ?? 'noreply@yourdomain.com',
      ...payload,
    }),
  })
  if (!res.ok) throw new Error(await res.text())
  return res.json()
}

Sandbox

Use noreply@mail.supersendtx.com and your account email for the first test — see Quickstart.