Email (Resend)
VibeReady uses Resend for transactional email delivery. Email templates are built with React Email components, and all emails are sent asynchronously through Inngest background jobs.
Free tier: 3,000 emails per month, 100 emails per day.
Local Development
Resend works locally without an API key through graceful degradation:
- Emails are logged to the console instead of being sent.
- The application continues to function normally.
- The default sender address
onboarding@resend.devis used.
No configuration is needed for local development.
Production Setup
Emails in production are sent through Inngest background jobs. Before configuring Resend for production, make sure you have also set up Inngest for production.
-
Get an API key from resend.com, then navigate to API Keys, then Create API Key.
- Set permission to “Sending access”.
- Copy the key (starts with
re_).
-
Add to your local environment:
# .env.local
RESEND_API_KEY="re_..."
FROM_EMAIL="onboarding@resend.dev" # Use default initially
-
Add to CI/CD: Add the Resend API key to your CI/CD pipeline secrets (e.g., GitHub Secrets) so it is available during builds and deployments.
-
Add to Terraform (GCP Deployment): Add the API key to your Terraform configuration file, then apply the changes:
terraform apply
This creates the secret in GCP Secret Manager that Cloud Run accesses at runtime.
- Restart the dev server:
make dev
Custom Domain Verification (Optional)
Start with the default onboarding@resend.dev sender address. When you are ready to send from your own domain (e.g., hello@yourdomain.com):
- Go to Domains in the Resend dashboard, then click Add Domain.
- Add the DNS records shown (TXT, MX, CNAME) to your domain’s DNS provider.
- Wait for verification (typically 5 minutes to 24 hours).
- Update your
FROM_EMAILenvironment variable to use your custom domain.
Custom domain verification adds SPF and DKIM records, which improves email deliverability and reduces the chance of emails landing in spam.
Testing
Trigger an email action (e.g., create a test user) and verify delivery in the Resend dashboard.
Troubleshooting
| Issue | Fix |
|---|---|
| Emails not sending | Check RESEND_API_KEY in your CI/CD secrets and restart Cloud Run. |
| ”Domain not verified” | Use onboarding@resend.dev or complete DNS verification. |
| Emails landing in spam | Verify your domain and add SPF/DKIM records (shown in the Resend dashboard). |
Related Docs
- Background Jobs (Inngest) — emails are sent through Inngest background jobs
- GCP Deployment — Resend API key is stored in Secret Manager
Ready to build with VibeReady?
Get the full AI-native SaaS foundation with production infrastructure, AI development framework, and all integrations.
Get VibeReady — From $149