Hi everyone!
Over the past two weeks, I built a small side project called VideoCompress
— a fast, free, and easy-to-use online video compressor with no watermark or usage limits.
💡 The Problem
There are plenty of “free” online video compressors, but most of them come with frustrating limitations — watermarks, file size limits, or hidden paywalls.
I wanted something simple: just upload → compress → download — no distractions, no tricks.
🧱 The Tech Stack
The project is built with:
- Frontend: Nuxt, for static site generation and an ultra-fast UI.
- Backend: FastAPI, for handling API requests.
- Video Processing: FFmpeg, running on the server for efficient compression.
The Nuxt app is completely static — deployed on a CDN for fast global access — while the backend API handles the heavy lifting on the server.
⚙️ Why I Moved Compression to the Backend
Initially, I implemented compression on the frontend using WebAssembly builds of FFmpeg.
It worked, but the performance wasn’t great — CPU utilization was low, and large files took ages to compress.
By moving the compression process to the server side, I could fully leverage the machine’s CPU and I/O performance.
This resulted in much faster compression, especially for longer videos or high-resolution formats (like 1080p or 4K).
It also gave me more flexibility to:
- Optimize compression presets dynamically
- Handle larger uploads
- Support multiple video formats (MP4, MOV, AVI, etc.)
🧪 Lessons Learned
- Frontend compression sounds cool, but for heavy workloads, it’s just not efficient.
- FFmpeg remains unbeatable when it comes to quality-to-size ratio.
- Keeping the UI minimal is key — users just want results, not settings overload.
- Building static with Nuxt + FastAPI backend is a great combo for projects like this — quick to build, easy to deploy, and highly scalable.
🌍 Try It Out
If you’d like to give it a try, you can check it out here:
👉 https://videocompress.ai
It’s completely free, no watermarks, no hidden limits.
Would love to hear your feedback or suggestions for improvement!
Top comments (0)