Reference
Differences from Resend
Which Resend rules Pretend enforces, and what it does differently because nothing is really sent.
Rules Pretend enforces
Pretend rejects the same requests Resend would, with the same error names and messages, so a bug shows up locally rather than in production.
Sender domains
Only verified domains may send. resend.dev is always allowed, so onboarding@resend.dev works from the start. Add your own domain in the dashboard under Domains; it can be verified there with no real DNS.
Set DOMAIN_ENFORCEMENT=false to let any sender domain send.
Testing domains
Like Resend, Pretend refuses recipients on placeholder domains such as example.com and test.com, and asks you to use the test addresses instead:
{
"statusCode": 422,
"name": "validation_error",
"message": "Invalid `to` field. Please use our testing email address instead of domains like `example.com`. See our documentation for more information."
}Use delivered@resend.dev and the other test recipients.
Rate limiting
Off by default. Set RATE_LIMIT=true to apply Resend's 10 requests per second and get 429 rate_limit_exceeded when you go over.
What's different
- Nothing is delivered. Every email is stored and shown in the dashboard instead.
- Delivery is simulated. Events and webhooks follow the recipient address, not a real mail server.
- DNS is not checked. Domains can be verified from the dashboard.
- One API key works out of the box:
re_local_dev_key, until you setRESEND_API_KEY.