Free tier
Free Trial: $5 one-time credit for 30 days; then Free plan with $1/month of usage
- Free Trial: $5 one-time credit, valid 30 days, no credit card required
- Free plan: $0 with $1/month usage credit, 1 project, 3 services, 1 vCPU / 0.5 GB per service
- Free plan: 0 custom domains (Trial: 1)
- Usage: ≈$10 per GB RAM/month, ≈$20 per vCPU/month, egress $0.05/GB (billed per second)
Paid
$5/mo: Hobby: $5/month including $5 of usage, 2 custom domains, 50 projects. Pro: $20/month per workspace
Catches
- The Free plan can't attach a custom domain — budget for Hobby ($5/mo) if you want your own domain.
Deploying to Railway
- Connect
- Go to railway.com/new → Deploy from GitHub repo, connect GitHub and choose the repository. Railway detects the build automatically.
- Build
- A Vite SPA is served as static files; a Node/Python server needs a start command and must listen on
$PORT. - Env vars
- Service → Variables tab (frontend
VITE_*values must be present at build time) - Domain
- Service → Settings → Networking → + Custom Domain. Railway gives you a CNAME to add at your DNS provider and issues SSL automatically.
Single-page app fallback
:{$PORT:3000} {
root * dist
encode gzip
file_server
try_files {path} /index.html
} Official docs (opens in a new tab)