Deploying with Railway (Python)
Railway puts your Python app on the internet. It connects to your GitHub repo and automatically deploys when you push new code. You get a free URL (like your-project.up.railway.app) that anyone can visit. This step is optional — you can build locally without it and connect Railway later.
Building with JavaScript (Next.js, React, Vite)? See Deploying with Vercel instead.
How to Connect
Railway setup is done manually (unlike Supabase, which Vibecheck handles automatically). It only takes a few minutes:
- Go to railway.app and sign in (or create a free account)
- Click "Deploy from GitHub repo"
- Find and select your project's repository
- Railway auto-detects Python and deploys — wait for it to finish
- Go to your project Settings → Variables and add your Supabase credentials:
SUPABASE_URLandSUPABASE_ANON_KEY
Note: Python projects use SUPABASE_URL (no prefix), not NEXT_PUBLIC_SUPABASE_URL like JavaScript projects.
It's Not Working
Railway is asking for a start command›
Railway usually auto-detects how to run your app. If it asks, check your project's README for the start command. Common ones: python main.py, uvicorn main:app --host 0.0.0.0 --port $PORT (FastAPI), gunicorn app:app (Flask). If you're not sure, leave it blank and let Railway auto-detect, or ask Claude: "What's the start command for my Python app?"
It deployed but my app shows an error›
Two common causes: (1) Missing environment variables — go to your project Settings → Variables and make sure SUPABASE_URL and SUPABASE_ANON_KEY are set. (2) Missing dependencies — make sure your requirements.txt includes everything your app needs. Ask Claude: "Can you check my requirements.txt has all the dependencies?"
The build failed on Railway›
Open Railway → your project → click the failed deployment → read the build logs. Find the error line. Paste it into Claude: "My Railway build failed with this error: [paste error] — can you fix it?" Common issues: missing requirements.txt, wrong Python version, or a package that needs system-level dependencies.
Do I need Railway right now?›
No. You can skip this step and still build and test your app locally. Connect Railway when you're ready to share it or go live.
What are environment variables? Why can't I just put my API keys in my code?›
Environment variables are a safe place to store secrets — like your Supabase password or API keys — separate from your code. Your code goes on GitHub, which could be public or shared. If your API keys are in your code, anyone who sees your code can use them. Environment variables keep secrets out of your code and stored privately on whatever service is running your app. On Replit, this was handled for you. In VS Code, you manage it yourself — but it's a one-time setup and Vibecheck walks you through it.
Still stuck? Contact us →