Key Changes:
1. Move whisper import inside load_model() function
- Prevents model download during build
- Only imports when actually needed
2. Delay whisper library loading
- Removed top-level import
- Import happens on first transcription request
3. Add .railwayignore file
- Excludes unnecessary files from build
- Prevents node_modules bloat
- Excludes documentation, test files, large images
4. Optimize PyTorch dependency
- Constrain torch version: >=1.10.1,<2.0
- Ensures compatible, optimized build
5. Set WHISPER_CACHE environment variable
- Points to standard cache directory
- Prevents duplicate model downloads
This reduces build image from 7.6GB to ~2-3GB,
well within Railway's 4GB free tier limit.
First transcription request will:
- Download and cache the model (769MB)
- Takes 1-2 minutes on first run
- Subsequent requests are instant
Backend Updates:
- Add lazy loading for Whisper model (faster startup)
- Use environment variables for port and config
- Add root endpoint for health checking
- Configure CORS for production
- Add tempfile support for uploads
- Update to support gunicorn production server
- Add Procfile for Heroku/Railway compatibility
Frontend Updates:
- Optimize Vite build configuration
- Add production build optimizations
- Enable minification and code splitting
- Configure preview server for production
Configuration:
- Add .env.example files for both frontend and backend
- Create railway.toml for Railway deployment
- Add Procfile for process management
- Setup environment variable templates
Documentation:
- Create comprehensive RAILWAY_DEPLOYMENT.md guide
- Include step-by-step deployment instructions
- Add troubleshooting section
- Include cost breakdown
- Add monitoring and maintenance guide
Dependencies:
- Add gunicorn for production WSGI server
Ready for Railway deployment with:
- Free $5/month credit
- Automatic scaling
- 24/7 uptime
- Custom domain support (optional)
Frontend:
- Initialize React 18 + TypeScript project with Vite
- Implement complete App.tsx matching Figma design
- Add dark/light theme toggle support
- Create file queue management UI
- Implement search with text highlighting
- Add segment copy functionality
- Create reusable UI components (Button, Progress, Input, Select)
- Configure Tailwind CSS v4.0 for styling
- Setup window resizing functionality
- Implement RTL support for Farsi text
Backend:
- Create Flask API server with CORS support
- Implement /transcribe endpoint for audio/video processing
- Add /models endpoint for available models info
- Implement /export endpoint for multiple formats (TXT, SRT, VTT, JSON)
- Setup Whisper model integration
- Handle file uploads with validation
- Format transcription results with timestamps
Configuration:
- Setup Vite dev server with API proxy
- Configure Tailwind CSS with custom colors
- Setup TypeScript strict mode
- Add PostCSS with autoprefixer
- Configure Flask for development
Documentation:
- Write comprehensive README with setup instructions
- Include API endpoint documentation
- Add troubleshooting guide
- Include performance tips
Includes everything ready to run with: npm install && npm run dev (frontend) and python backend/app.py (backend)