Replace expensive subscriptions
Slate
Images, audio, fonts and video you already own, turned into a finished MP4 on servers you control. You send a recipe — a short JSON description of the video you want — and Slate renders it with a pinned ffmpeg on your own queue, in your own bucket, and hands back one signed download URL. Nobody meters the minutes.
Work in progress. Available to teams with Unlimited.
- Replaces
- A metered video rendering API
- Runs on
- Your Laravel Cloud account
- Needs
- Compute · Database · Queue · Object storage · Scheduler
What it renders
Named operations with typed parameters, compiled into ffmpeg for you
-
Pages into a film
The delivery recipe takes an ordered list of pages — an image and an audio track each — with optional per-word captions and cross-fades between them.
-
Clips into a cut
The highlights recipe takes one video source and a list of ranges, cuts them and joins them into a single video.
-
No ffmpeg arguments
You never send a command line. Slate accepts named operations with typed, validated parameters and compiles the invocation itself.
-
Your own sources
Upload directly to your bucket with a signed URL, or hand Slate a remote address to ingest, and it probes and validates what arrived before anything renders.
-
A signed result
A finished run hands back one signed download URL with a fifteen-minute life, pointing at an object in the bucket you own.
-
A pinned binary
The deploy bakes one checksummed ffmpeg build into the artifact, so every instance runs the same encoder and an upstream release never changes your output.
-
The API is a security boundary, not a convenience
ffmpeg can read and write files and URLs, so an API that passed your arguments through would let a caller read the disk it runs on. Slate compiles the command line from typed operations instead, validating durations, dimensions, codecs and stream counts against documented ceilings first.
-
Nobody counts your minutes
MP4Hosted video APIs bill per rendered minute and per resolution tier, which makes the cost of a feature a function of how successful it is. Slate renders on a queue you already pay Laravel Cloud for; a busier month is a bigger compute bill, not a different price per video.
Slate vs. the incumbents
We rebuilt one row of their feature matrix
Shotstack, Creatomate and Remotion are good products, and Slate is not trying to replace them. It does one slice of what they do — turn assets you already own into a finished MP4 — on infrastructure you own, and deliberately does not do the rest. The question is not which product is better. It is which slice you are actually using.
| Feature | Slate Self-hosted, MIT | Shotstack Hosted | Creatomate Hosted | Remotion Self-host, or their Lambda |
|---|---|---|---|---|
| Rendering on infrastructure you own the row we rebuilt | Does this well:Your Cloud account | Not built:Hosted only | Not built:Hosted only | Does this well:Your own AWS |
| A JSON recipe, no command line the row we rebuilt | Does this well:Typed, validated | Does this well:JSON timeline | Does this well:JSON templates | Not built:You write React |
| Finished files stay in your bucket | Does this well:Your private bucket | Partly, or with a caveat:Their CDN, or yours | Partly, or with a caveat:Their CDN, or yours | Does this well:Your own bucket |
| A visual template or timeline editor we did not build this | Not built:API only | Does this well:Included | Does this well:Their core strength | Partly, or with a caveat:A React preview |
| Text to speech and AI voiceover we did not build this | Not built:Bring your audio | Does this well:Included | Works, but on their terms:Extra credits | Not built:Bring your audio |
| Stock media and font libraries we did not build this | Not built:Assets you own | Does this well:Included | Does this well:Included | Not built:Assets you own |
| Arbitrary animation and effects we did not build this | Not built:Two recipes | Does this well:Broad effects | Does this well:Broad effects | Does this well:Anything React draws |
| Where your source footage lives | Does this well:Your private bucket | Works, but on their terms:Their cluster | Works, but on their terms:Their cluster | Does this well:Your own bucket |
| Cost of the next rendered minute | Does this well:Queue compute | Works, but on their terms:Per minute, by tier | Works, but on their terms:Per minute, by tier | Partly, or with a caveat:Lambda, plus licence |
| Who is on call for the tool itself | Partly, or with a caveat:You are | Does this well:They are | Does this well:They are | Partly, or with a caveat:You are |
- Does this well
- Partly, or with a caveat
- Not built
- Works, but on their terms
The honest test
Ask what the video API is actually for on your team. If these are all true, you are paying per minute for a platform to use one row of it.
- The videos you generate are the same two or three shapes every time.
- Every asset that goes in is one you already own.
- You would rather own the finished files than rent the pipeline.
Then you lose very little by moving. Slate is experimental today, so start with the one video your product generates most; the sources and results stay in your own bucket either way.
Keep paying them if
These are the parts we chose not to build, and we are not going to pretend otherwise.
- You want a visual editor your marketing team can drive.
- You want text to speech, stock footage or a font library in the same tool.
- Your videos need arbitrary animation rather than two fixed recipes.
- You need vendor support, an SLA, or somebody else on call for the encoder.
Small, sharp tools are a deliberate scope, not an unfinished roadmap. Slate will not grow into a creative suite.
Be honest about it
You don't need us to run Slate
The repository is public and MIT licensed. These are the steps, and you are welcome to spend the afternoon doing them by hand.
-
1
Fork the Slate repository into your own GitHub organisation.
-
2
Deploy the fork to Laravel Cloud with its own compute, Postgres, a managed queue, a private bucket and the scheduler enabled — the build bakes the pinned ffmpeg into the artifact.
-
3
Mint a credential in the Slate UI, upload your sources through a signed URL, and POST a recipe to start a run.
Or buy Unlimited once. Scalpels forks it, provisions exactly what it needs on your Laravel Cloud account, and deploys it. The app and the infrastructure are yours either way — the only question is who spends the afternoon.
Deploy Slate with Unlimited