About reelsdk
Video rendering for apps that can't run ffmpeg
reelsdk is a video rendering API built by Bitgate, a software company in Rijen, the Netherlands. One HTTP call turns photos into a narrated slideshow, burns word-by-word captions into a clip, makes a faceless short from a topic or runs any ffmpeg command, on a fresh machine that is ready in 1.87 seconds at the median. Slideshows and captions cost $0.02 per output minute, raw ffmpeg $0.01 per compute minute, and the first $1 is free.
- No subscription
- Plain HTTP and JSON
- First release 25 October 2026
Why it exists
ffmpeg doesn't fit where most new apps run
Apps made with Lovable, bolt and other AI builders, or wired together in n8n, run their backend on serverless platforms. Those are great for short requests and bad at video: a static ffmpeg build is about 80 MB on its own, and a render needs a real machine for tens of seconds or more.
| Where your code runs | The limit | What it means for video |
|---|---|---|
| Supabase Edge Functions | 256 MB of memory, 2 s of CPU per request, 20 MB per function | An 80 MB ffmpeg binary doesn't fit, and a render needs far more than 2 s of CPU. |
| Cloudflare Workers | JavaScript and WebAssembly only, 128 MB of memory per isolate | There is no native ffmpeg to call, so the work has to happen somewhere else. |
| Vercel Functions | 4.5 MB request body | A phone video is too big to even upload to your function. |
How it works
One request, five steps, no servers of yours
Every job follows the same path, whether it's a slideshow, captions, a short or your own ffmpeg command.
- 1
Your app sends a job
One HTTPS request with JSON: the input URLs and what to make. Any language or no-code tool that can call a URL works.
POST /v1/captions
- 2
The gateway checks it
A Cloudflare Worker checks your key, validates the request, applies your limits and queues the job.
"status": "queued"
- 3
A fresh machine renders
A new machine with ffmpeg 8.1 starts for this job alone, ready in 1.87 s at the median, then downloads your inputs and renders.
"status": "running"
- 4
Files land in R2
Outputs are stored in Cloudflare R2 behind unguessable links and deleted after 7 days.
out/job_.../video.mp4
- 5
You get the links
In the response if you wait (up to 300 s), by polling the job, or in a webhook signed with HMAC-SHA256.
"status": "succeeded"
Voiceovers, transcripts and shorts also call AI models on Cloudflare Workers AI along the way: Whisper for word timings, Aura-2 and MeloTTS for voices, Gemma 4 and Qwen3 for scripts, and FLUX.2 klein for images.
Principles
How we run it
Pay for what you render
$0.02 per output minute for slideshows and captions, $0.01 per compute minute for raw ffmpeg, $0.25 for a short up to 60 s. No subscription and no minimum, and the first $1 is on us.
Plain HTTP, no SDK
Every endpoint takes JSON and returns JSON. We publish an OpenAPI spec and a plain-text reference at /llms.txt, and ship an MCP server so coding agents can wire it up.
A fresh machine per job
Nothing is shared between jobs. Each render gets its own machine and its own folder, and its files are deleted after 7 days.
Real numbers, published
Our limits and measured speeds are on the site: 3 jobs at once and 500 a day per key, machines ready in 1.87 s at the median and 2.48 s at p90.
Who builds it
Made by Bitgate
reelsdk is built by Bitgate, Inc., a software company from Rijen in the Netherlands that makes games, software and apps. Its biggest title, the online game Curse of Aros, grew to over 2 million users in two years.
The team works remotely, from different countries. We built reelsdk for apps made with AI builders and serverless platforms: they can call an API, but they can't run ffmpeg. So the API does the rendering, and your app only has to send one request.
FAQ
About reelsdk
Who makes reelsdk?
Bitgate, Inc., a software company in Rijen, the Netherlands, that builds games, software and apps, including the online game Curse of Aros with over 2 million users. You can reach us at kevin@bitgate.com.
Why can't my app just run ffmpeg?
Serverless backends are built for short, light requests. Supabase Edge Functions allow 256 MB of memory, 2 seconds of CPU per request and a 20 MB function, Cloudflare Workers run only JavaScript and WebAssembly, and Vercel caps request bodies at 4.5 MB. ffmpeg is a native binary of about 80 MB that needs a real machine for the length of the render.
Where do renders run?
On Cloudflare. A Worker takes the request, each job gets a fresh machine on Cloudflare Containers, files go to Cloudflare R2 in Western Europe, and AI steps use Cloudflare Workers AI. Job records live in a Postgres database in Frankfurt.
How much does it cost?
$0.02 per output minute for slideshows and captions, $0.05 per 1,000 voiceover characters, $0.25 for a short up to 60 s and $0.35 up to 90 s, and $0.01 per compute minute for raw ffmpeg. There's no subscription: you pay from prepaid credit, and the first $1 of renders is free.
How do I get an API key?
Sign up with Google and create a key in the dashboard. Your first $1 of renders is free and no card is needed.
Ready to build?
Make your first video today
Sign up with Google and create a key in a minute. Your first $1 of renders is free, then you pay per minute from prepaid credit.
