All deployment files have been created in ~/language-learning-app/
- ✅ Procfile - Tells Railway how to run the app (using gunicorn)
- ✅ requirements.txt - Python dependencies for Railway
- ✅ runtime.txt - Specifies Python 3.11.6
- ✅ railway.json - Optional Railway-specific configuration
- ✅ .gitignore - Excludes sensitive files from git
- ✅ .env.example - Shows required environment variables
- ✅ app.py - Updated to use Railway's PORT environment variable
- ✅ README.md - Added deployment quick start section
- ✅ DEPLOYMENT.md - Complete step-by-step Railway deployment guide
~/language-learning-app/
├── app.py ✅ Main Flask app (production ready)
├── requirements.txt ✅ Dependencies
├── Procfile ✅ Railway start command
├── runtime.txt ✅ Python version
├── railway.json ✅ Railway config
├── .gitignore ✅ Git exclusions
├── .env.example ✅ Environment variable template
├── templates/
│ └── index.html ✅ V2 frontend
├── static/
│ ├── css/style.css ✅ Styles
│ └── js/app.js ✅ V2 JavaScript
├── docs/
│ ├── LANGUAGE_LEARNING_RESEARCH.md
│ └── FEATURE_DESIGN.md
├── README.md ✅ Main documentation
├── DEPLOYMENT.md ✅ Deployment guide
└── NEXT_STEPS.md 📄 This file
cd ~/language-learning-app
# Initialize git
git init
# Add all files
git add .
# Make first commit
git commit -m "Initial commit: Language Learning App v2"Option A - Using GitHub CLI (easiest):
# Install if needed: brew install gh
gh auth login
gh repo create language-learning-app --public --source=. --pushOption B - Using GitHub website:
- Go to https://github.com/new
- Name:
language-learning-app - Make it Public
- Don't initialize with README
- Create repository
Then:
git remote add origin https://github.com/YOUR_USERNAME/language-learning-app.git
git branch -M main
git push -u origin main- Go to https://railway.app
- Click "Start a New Project"
- Select "Deploy from GitHub repo"
- Choose
language-learning-app - Go to "Variables" tab
- Add:
ANTHROPIC_API_KEY= your Anthropic API keyCARTESIA_API_KEY= your Cartesia API key
- Go to "Settings" → "Networking" → "Generate Domain"
- Visit your app at the generated URL!
Once deployed, test:
- App loads
- Language selector works (Telugu, Tamil, Kannada)
- Mode selector works (Guided, Conversational)
- Can start a conversation
- Audio plays (TTS)
- Microphone works (STT)
- Complexity level adjusts
- Never commit API keys - they're already in .gitignore
- Set them only in Railway's environment variables
- Get them from:
- Anthropic: https://console.anthropic.com/
- Cartesia: https://cartesia.ai/
telugu_srs.json(vocabulary data) is NOT persisted on Railway- It's stored in ephemeral filesystem
- Resets on every redeploy
- For production persistence, consider Railway's PostgreSQL addon
Once connected to GitHub, Railway auto-deploys on every push to main:
git add .
git commit -m "Add feature"
git push origin main
# Railway automatically deploys!- Full Deployment Guide: See DEPLOYMENT.md
- App Documentation: See README.md
- Research Background: See docs/LANGUAGE_LEARNING_RESEARCH.md
- Railway Docs: https://docs.railway.app
- Railway Discord: https://discord.gg/railway
# Create and push to GitHub
cd ~/language-learning-app
git init
git add .
git commit -m "Initial commit"
gh repo create language-learning-app --public --source=. --push
# After making changes
git add .
git commit -m "Description of changes"
git push origin main
# Run locally for development
export ANTHROPIC_API_KEY="your-key"
export CARTESIA_API_KEY="your-key"
export FLASK_ENV="development"
python app.py
# Visit http://localhost:5000If you run into issues:
- Check DEPLOYMENT.md troubleshooting section
- Check Railway deployment logs
- Verify environment variables are set
- Check that API keys are valid and have quota
You're ready to deploy! 🚀
Follow the 3 steps above and your language learning app will be live on the internet in about 15 minutes!