%

Media / Tools

Case study

Elcompresso*

File compression service for video, audio, and image files with configurable quality settings and S3-backed downloads.

Project

Elcompresso

Industry

Media / Tools

Year

2026

Role

Software Engineer

The problem

Every free compression tool online is riddled with ads and file size limits. I needed a fast way to compress media for my articles and portfolio without dealing with any of that.

What it does

elcompresso compresses, converts and trims video, audio and images. You can start from a preset, such as Discord 10 MB, WhatsApp 16 MB or Web, or fine-tune every option, then upload several files at once and follow the real encoding progress of each one.

  • Video can be compressed by quality or to an exact target size using a two-pass encode, in H.264, H.265, AV1 or VP9.
  • Audio supports loudness normalisation, silence trimming and extracting the soundtrack from a video.
  • Images can be converted to WebP, AVIF, JPEG or PNG, with lossy PNG through palette quantisation and a before and after comparison slider.
  • The server reports what its FFmpeg build supports, so the interface only offers options that will work.

Architecture

The backend is written in Go with a hexagonal layout. An API and separate workers share job state in Redis and hand jobs over through RabbitMQ.

Files go straight from the browser to S3 through presigned uploads, so large videos never pass through the API. A worker picks up the job, runs FFmpeg, reports progress to Redis and uploads the result, and the browser downloads it through a presigned link.

Built to survive failure

  • A worker that is stopped puts its running job back on the queue, and RabbitMQ redelivers jobs from a worker that crashes, so restarts and deploys do not lose work.
  • A job that crashes its worker three times is marked as failed instead of retrying forever.
  • Per-IP rate limits, concurrency caps, a bounded queue with backpressure and per-job timeouts keep a single instance stable under load.
  • Results expire automatically, after one hour by default.

The result

A self-hosted compressor with no ads and no arbitrary limits. The backend runs on a single EC2 instance with Docker, the frontend is deployed on Vercel, and the demo videos on this site were compressed with it.

ESCROW TECH

Software engineer at Escrow Tech, a solutions company in the Gidia Oaks group. I built the frontend for SteadGrid, the group's data centre operations platform, and I'm now building Creator Studio.

Next project

Digital Infrastructure