
Deploy Send Email at AWS SES Pricing — Self-Host useSend on Railway
Self-host email at AWS SES pricing. No SendGrid or Resend markup.
MinIO Bucket Creator
Just deployed
Redis
Just deployed
/data
Storage
Just deployed
Just deployed
Server
Just deployed
Just deployed
/var/lib/postgresql/data
Deploy and Host useSend on Railway
useSend is the open-source email platform that gives you the power of SendGrid, Resend, and Postmark — self-hosted on your own infrastructure, powered by Amazon SES at $0.10 per 1,000 emails. Transactional REST API, SMTP relay, bulk campaign sending, contact management, visual WYSIWYG email editor, and real-time delivery analytics (opens, clicks, bounces, unsubscribes) — all in one platform you fully control.
At 100,000 emails/month: SendGrid costs $89.95. Resend costs $40. Postmark costs $75. useSend on Railway costs ~$10 in SES fees plus Railway compute. No per-platform markup.
What This Template Deploys
| Service | Purpose |
|---|---|
| useSend Server | The email platform — REST API, SMTP relay, campaign dashboard, analytics, and contact management |
| PostgreSQL | Primary database — API keys, domains, contacts, campaigns, email logs, and delivery events |
| Redis | Queue for email sending jobs, retry logic, and background processing |
| MinIO | S3-compatible object storage — campaign images, attachments, and email assets |
| MinIO Bucket Creator | One-time setup service — creates required MinIO buckets on first deploy |
| MinIO Console | Web UI for MinIO bucket management and storage inspection |
All services connect over Railway's private internal network. Database, Redis, and MinIO credentials are injected automatically via Railway reference variables.
About Hosting useSend
Managed email platforms like SendGrid and Resend are pay-to-play — the more email you send, the more you pay in platform fees. useSend routes email through Amazon SES, which charges $0.10 per 1,000 emails with no monthly minimum — the same infrastructure behind AWS's most reliable email service, billed directly at cost with no middleman markup.
Railway provisions the full six-service stack automatically. PostgreSQL, Redis, and MinIO are pre-wired over private networking. useSend runs as a Next.js application behind Railway's HTTPS proxy with automatic domain management and API key generation.
Typical cost: ~$10–15/month on Railway's Hobby plan for the full six-service stack plus your AWS SES usage at $0.10/1,000 emails. At 500,000 emails/month, total cost is ~$65/month — versus SendGrid at ~$299/month or Resend at ~$90/month at the same volume.
Deploy in Under 5 Minutes
- Click Deploy on Railway — all six services build automatically (~4–5 minutes)
- Set the four required variables:
GITHUB_ID,GITHUB_SECRET,AWS_ACCESS_KEY,AWS_SECRET_KEY— see prerequisites below - Open your Railway URL — log in with your GitHub account
- Add and verify your sending domain in the useSend dashboard
- Generate an API key and start sending transactional emails
Prerequisites
GitHub OAuth App — Create at github.com/settings/applications/new. Set callback
URL to https://[your-railway-domain]/auth/callback/github.
AWS Account — Create an IAM user with AmazonSESFullAccess and AmazonSNSFullAccess
policies, then generate programmatic access keys. See the
useSend AWS setup guide.
Common Use Cases
- Self-hosted alternative to Resend — replace $20–90/month platform fees with flat AWS SES costs at $0.10/1,000 emails; same REST API pattern, full delivery analytics, own your sending infrastructure completely
- Self-hosted alternative to SendGrid — eliminate $15–$299/month subscription tiers; useSend gives you transactional API, SMTP relay, bulk sending, and analytics on your own PostgreSQL instance
- High-volume transactional email at AWS SES pricing — password resets, magic links, order confirmations, and notifications at $0.10/1,000 with no tier limits or overage fees
- Email marketing without Mailchimp fees — send newsletter campaigns, product updates, and drip sequences via the visual WYSIWYG editor with contact list management and per-list subscription tracking — all on your infrastructure
- Multi-domain email API for SaaS — manage multiple sending domains, separate API keys per project, and per-domain analytics from a single useSend deployment
- Railway Hobby plan email solution — Railway blocks SMTP on Hobby plans; useSend's REST API routes through AWS SES over HTTPS, working on every Railway plan without SMTP
Configuration
| Variable | Required | Description |
|---|---|---|
GITHUB_ID | ✅ Required | GitHub OAuth app client ID — for user authentication |
GITHUB_SECRET | ✅ Required | GitHub OAuth app client secret |
AWS_ACCESS_KEY | ✅ Required | AWS access key ID with SES and SNS permissions |
AWS_SECRET_KEY | ✅ Required | AWS secret access key |
NEXTAUTH_SECRET | ✅ Auto-generated | NextAuth.js session secret — auto-generated at deploy |
DATABASE_URL | ✅ Auto-injected | PostgreSQL connection string via Railway reference variable |
REDIS_URL | ✅ Auto-injected | Redis connection URI via Railway reference variable |
NEXT_PUBLIC_APP_URL | ✅ Auto-set | Your Railway public domain — required for OAuth callbacks |
MINIO_ENDPOINT | ✅ Auto-injected | MinIO internal endpoint via Railway reference variable |
MINIO_ACCESS_KEY | ✅ Auto-injected | MinIO access key — auto-generated at deploy |
MINIO_SECRET_KEY | ✅ Auto-injected | MinIO secret key — auto-generated at deploy |
useSend vs. Managed Email Platforms
| useSend (Railway + SES) | Resend | SendGrid | Postmark | |
|---|---|---|---|---|
| Base cost | ~$10–15/mo (Railway) | Free–$20/mo | Free–$15/mo | $15/mo |
| Per-1,000 emails | $0.10 (AWS SES) | Included in plan | Included in plan | Included in plan |
| 100k emails/month | ~$20–25 total | $40/month | $89.95/month | $75/month |
| 500k emails/month | ~$65 total | ~$90/month | ~$299/month | ~$225/month |
| Data ownership | ✅ Your infrastructure | ❌ Resend servers | ❌ SendGrid servers | ❌ Postmark servers |
| Contact management | ✅ Built-in | ✅ Audiences | ❌ Basic | ❌ No |
| WYSIWYG email editor | ✅ Visual, no-code | ❌ No | ⚠️ Design editor | ❌ No |
| SMTP relay | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |
| Self-hostable | ✅ Yes | ❌ No | ❌ No | ❌ No |
| Open source | ✅ Yes | ❌ No | ❌ No | ❌ No |
Dependencies for useSend Hosting
- Railway account — Hobby plan (~$10–15/month) covers all six services
- AWS account with SES + SNS access (IAM user with programmatic keys)
- GitHub account for OAuth app creation
Deployment Dependencies
- useSend GitHub Repository — source and releases
- useSend Documentation — setup guides and API reference
- AWS SES Setup Guide — IAM user, SES, and SNS configuration
- AWS SES Pricing — $0.10 per 1,000 emails
Implementation Details
The full stack deploys over Railway's private internal network. The MinIO Bucket Creator
runs once at startup to initialise required buckets, then exits. All credentials are wired
via Railway reference variables. AWS SES handles outbound delivery; SNS webhooks send
delivery events (delivered, opened, clicked, bounced, complained) back to useSend's
PostgreSQL analytics store. Select the AWS region closest to your Railway deployment —
us-east-1 is recommended if unsure.
Frequently Asked Questions
How much does useSend cost compared to Resend or SendGrid? Railway compute for the six-service stack runs at ~$10–15/month. AWS SES charges $0.10 per 1,000 emails with no monthly minimum. At 100k emails/month, total cost is ~$20–25 vs Resend at $40 and SendGrid at $89.95. At 500k emails/month, useSend costs ~$65 total vs SendGrid at ~$299/month.
Why does useSend require an AWS account? useSend uses Amazon SES as its delivery infrastructure — the same service behind AWS's own email delivery at $0.10/1,000 emails. AWS provides the sending reputation, IP pool, and compliance infrastructure. useSend provides the API, dashboard, analytics, and contact management layer on top of SES. Without AWS, useSend cannot send emails.
Why does useSend require GitHub for authentication? GitHub OAuth is the only supported login method in the current release. Create a GitHub app with the callback URL pointing to your Railway domain. Other auth providers are planned.
Do I lose email logs and contact data if Railway redeploys? No. All delivery logs, contacts, campaigns, and API keys are stored in the Railway-managed PostgreSQL database. Email assets and images are stored in MinIO with its own persistent volume. Redeploys and updates do not affect any stored data.
Can I send bulk marketing emails as well as transactional? Yes. useSend handles both — transactional via REST API or SMTP relay, and marketing via the visual WYSIWYG editor with contact lists. Both route through SES with per-domain analytics.
Does useSend work on Railway's Hobby plan without SMTP? Yes. useSend routes all email through AWS SES via HTTPS REST calls — not raw SMTP. This works on Railway's Hobby plan where outbound SMTP (ports 25, 465, 587) is blocked.
Why Deploy and Host useSend on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying useSend on Railway, you get a complete self-hosted email platform — transactional API, SMTP relay, bulk campaigns, contact management, and real-time delivery analytics — at AWS SES pricing with no per-platform markup and full ownership of your email infrastructure.
Template Content
MinIO Bucket Creator
minio/mc:RELEASE.2025-04-16T18-13-26ZRedis
redis:8.2.1Storage
minio/minio:latestServer
usesend/usesendGITHUB_ID
GITHUB_SECRET
AWS_ACCESS_KEY
AWS_SECRET_KEY
