Scott Keck-Warren
Michigan
PHP and Laravel developer with 13 years of experience building and maintaining production apps. US Eastern, English.
Sign up now for $10 in credit on a new Laravel Cloud account.
Confidently own your tech stack
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 supporters.
Named operations with typed parameters, compiled into ffmpeg for you
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.
The highlights recipe takes one video source and a list of ranges, cuts them and joins them into a single video.
You never send a command line. Slate accepts named operations with typed, validated parameters and compiles the invocation itself.
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 finished run hands back one signed download URL with a fifteen-minute life, pointing at an object in the bucket you own.
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.
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.
Hosted 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
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:Metered add-on | 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 |
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.
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.
These are the parts we chose not to build, and we are not going to pretend otherwise.
Small, sharp tools are a deliberate scope, not an unfinished roadmap. Slate will not grow into a creative suite.
Be honest about it
The repository is public and open source. These are the steps, and you are welcome to spend the afternoon doing them by hand.
Fork the Slate repository into your own GitHub organisation.
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.
Mint a credential in the Slate UI, upload your sources through a signed URL, and POST a recipe to start a run.
Or become a supporter, and Scalpels deploys it for you. It 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 as a supporterThese agencies and freelancers are standing by and ready to help.
Michigan
PHP and Laravel developer with 13 years of experience building and maintaining production apps. US Eastern, English.
USA
We run Scalpels, as well as a suite of other tools for developers and development teams.