Railway
Deploys from GitHub or Dockerfile, handles servers and databases in one place.
Cloudflare Pages
Free for static sites and light serverless functions.
What Claude Code gives you
Anything you asked for.
Built-in hosting
No built-in hosting.
- Free: Not applicable.
- Custom domain: Set up at your host.
First: which kind of project do you have?
| Type | How to tell | What the host needs |
|---|---|---|
| Static / SPA | Build outputs dist/, build/ or out/. | Cloudflare Pages, Netlify, Vercel, DigitalOcean static. |
| Server app / API / bot | Has a start command that keeps running, often a Dockerfile. | Railway, Render, Fly.io, DigitalOcean App Platform. |
Get your code out
- Ask it to initialise git and create a GitHub repo, or run git init / git push yourself.
Build settings
- Build command
-
From package.json / Dockerfile - Output
- Depends on framework
- Node
- Match local
Environment variables to copy
-
Everything in .env — add each value in the host dashboard.
Gotchas
- Agents sometimes hard-code keys during prototyping. Search the code for secrets before pushing.
Step-by-step guides for Claude Code
- Vercel Easiest for Next.js / Vite frontends.
- Cloudflare Pages Cheapest for static sites — free with unlimited bandwidth.
- Railway Easiest for servers, bots and APIs; can add Postgres in the same project.
- Render Free tier for experiments; paid instances from $7/month for always-on.
- Fly.io For Dockerised apps that need to run close to users. No free tier.
- DigitalOcean App Platform Free static apps, containers from $5/month.
Database & login
Data: Neon (opens in a new tab): Free: 100 projects, 100 CU-hours per project/month, 1 GB storage per project (20 GB total). Compare databases
Auth: Clerk (opens in a new tab): Hobby: free — 50,000 monthly retained users per app, up to 3 social connections.
Common errors
- Supabase warns “RLS disabled” — your table is public
- “new row violates row-level security policy” (42501)
- Page works, but refreshing it gives a 404
- Blank page or “supabaseUrl is required” after moving off the builder
- Google login sends you back to localhost (or “redirect_uri_mismatch”)
- Deploy succeeds but shows a blank page or “Page not found”
- Firebase: “This domain is not authorized for OAuth operations”
- Clerk: “Development keys” warning or sign-in broken in production