- Code pushed to GitHub: Ensure latest code is in your GitHub repository
- Clean commit history: All changes committed and pushed
- No sensitive data: Check no API keys or secrets in code
- Dependencies updated: All package.json and requirements.txt up to date
- vercel.json: ✅ Created in project root
- railway.toml: ✅ Created in project root
- Procfile: ✅ Created in project root
- backend/.env.production: Production backend config
- frontend/.env.production: Production frontend config
- Go to railway.app
- Sign up with GitHub account
- Verify email address
- Click "New Project"
- Select "Deploy from GitHub repo"
- Choose VideoCraft repository
- Select "Deploy Now"
Go to Railway Dashboard → Variables and add:
PORT=8000
PYTHONPATH=/app/backend
DEBUG=false
MAX_UPLOAD_SIZE=104857600
CORS_ORIGINS=["https://videocraft.vercel.app"]Railway Dashboard → Settings → Deploy → Start Command:
cd backend && python simple_main_backup.py --host 0.0.0.0 --port $PORT- Copy your Railway deployment URL:
https://your-app.railway.app - You'll need this for frontend configuration
- Go to vercel.com
- Sign up with GitHub account
- Install Vercel GitHub app
- Click "New Project"
- Import VideoCraft from GitHub
- Configure build settings:
Framework Preset: Create React App
Root Directory: frontend/
Build Command: npm run build
Output Directory: build
Install Command: npm installVercel Dashboard → Settings → Environment Variables:
REACT_APP_API_URL=https://your-railway-url.railway.app
REACT_APP_MAX_FILE_SIZE=104857600
NODE_ENV=production- Click "Deploy"
- Wait for build to complete
- Get your Vercel URL:
https://videocraft.vercel.app
Add to backend/simple_main_backup.py:
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=[
"https://videocraft.vercel.app", # Your actual Vercel URL
"http://localhost:3001" # Local development
],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)Update frontend/.env.production:
REACT_APP_API_URL=https://your-actual-railway-url.railway.app- Railway: Automatic redeploy after pushing to GitHub
- Vercel: Automatic redeploy after pushing to GitHub
- Visit:
https://your-railway-url.railway.app/docs - Test API endpoints in Swagger UI
- Check health endpoint:
/health - Verify CORS headers in browser dev tools
- Visit:
https://your-vercel-url.vercel.app - Test file upload functionality
- Verify API connections in Network tab
- Test video analysis features
- Check export functionality
- Upload a small video file
- Wait for AI analysis to complete
- Test video editing features
- Export in different formats
- Verify all features work end-to-end
- Vercel Dashboard → Settings → Domains
- Add your domain:
videocraft.com - Configure DNS:
Type: CNAME Name: www Value: cname.vercel-dns.com
- Railway Dashboard → Settings → Domains
- Add:
api.videocraft.com - Configure DNS:
Type: CNAME Name: api Value: your-project.railway.app
Your deployment is successful when:
- Frontend loads:
https://videocraft.vercel.appshows your app - Backend responds:
https://your-app.railway.app/docsshows API docs - File upload works: Can upload videos up to 100MB
- AI analysis runs: Video processing completes successfully
- Export functions: Can download processed videos and reports
- No CORS errors: Frontend can communicate with backend
- SSL certificates: Both URLs show secure (🔒) in browser
Your Live URLs:
- 🌐 Frontend:
https://videocraft.vercel.app - 🔗 Backend:
https://videocraft-backend.railway.app - 📚 API Docs:
https://videocraft-backend.railway.app/docs
Monthly Costs:
- 💰 Free Tier: $0/month (Railway $5 credit + Vercel free)
- 📈 Paid Tier: $5-25/month (depending on usage)
Performance:
- ⚡ Frontend: Global CDN via Vercel
- 🚀 Backend: Railway cloud infrastructure
- 📱 Mobile: Responsive design works on all devices
Your professional AI video editing platform is now live and ready for users! 🌟