Hey there! 👋 This is my video transcoding app - basically a cool way to upload videos and get them converted into different formats. Think of it as your personal video processing buddy!
So you've got a video file that needs to be in a different format? Maybe you want to convert that huge 4K video to something more manageable, or you need it in a specific format for your project? That's exactly what this app does!
Upload your video, pick your desired format, and let the magic happen. The app handles all the heavy lifting in the background while you grab a coffee.
This is a full-stack app with some pretty cool tech behind it:
- React 19
- React Router
- Axios - Making those API calls
- React Toastify - For those nice little notifications
- CSS Modules
- Go
- Chi Router - For handling all those HTTP requests
- GORM - Database stuff made easy by the ORM
- PostgreSQL
- JWT
- Redis - For mainly caching metadata and session management
- RabbitMQ - Message queuing for background tasks (transcoding)
- Go - Processing videos in the background
- FFmpeg - The real MVP for video transcoding
- AWS S3 - Storing all those video files
- RabbitMQ - Coordinating the work
- Upload videos - Drag, drop, and go!
- Convert formats - MP4, AVI, MOV, you name it
- User accounts - Keep track of your uploads
- Background processing - No waiting around
- Email notifications - Know when your video is ready
- Go 1.24+
- Node.js & npm
- PostgreSQL
- Redis
- RabbitMQ
- FFmpeg
- Clone the repo
- Set up your environment variables
- Run the backend:
cd backend && go run cmd/main.go - Run the worker:
cd worker && go run main.go - Run the frontend:
cd frontend && npm start
Frontend (React) → Backend (Go) → Worker (Go)
↓
RabbitMQ → Redis → PostgreSQL
↓
AWS S3 (storage)
This is just a personal project, so feel free to use it as inspiration for your own stuff!