Skip to content
Scalpels home

Scalpels is officially launching on October 31, 2026. Special early adopter pricing is available now.

← All documentation

Documentation

Slate

Getting started

Updated

This page takes you from a connected Scalpels team to a running Slate that is ready to accept API calls. Rendering your first video is covered in Sources, Recipes and Runs and results.

Install it through Scalpels

Connect GitHub and Laravel Cloud to your Scalpels team, open the catalog, choose Slate and install it. The general flow, including how a failed install resumes, is in Install a product. Slate is Experimental, so installing it needs a supporter or partner team.

The install screen shows one optional environment value, SLATE_INSTALLATION_SUBJECT_REF. Leave it empty; Slate defaults the installation reference to the host in APP_URL. API credentials explains what the reference is, how to issue a credential against it, and what changing it breaks.

What the install creates

Scalpels creates exactly what Slate's manifest declares on your Laravel Cloud account:

Resource Why Slate needs it
Application on PHP 8.5 Slate's web app, API and MCP endpoints.
Serverless PostgreSQL 18 database Sources, runs, ingests, credentials and accounts. Rendered bytes are not stored here.
Managed queue Renders and ingests run as queued jobs. It is sized at 2 GB because each job decodes and re-encodes video.
Object storage bucket Every source and every result is stored here. Slate refuses to run without an S3-compatible bucket as its default disk.
Scheduler Runs slate:prune-ingests every hour to clean up after failed and expired uploads.

Every build runs php artisan slate:provision-ffmpeg. It downloads one pinned ffmpeg build, verifies its checksum and installs it inside the deploy, so every instance renders with the same binary. After each deploy, Scalpels runs php artisan migrate --force to create the schema.

The fork in your GitHub account and everything on your Cloud account belong to you. The media you upload and the videos Slate renders never pass through Scalpels.

Sign in

Open the deployment's page in Scalpels. When Scalpels has finished enrolling the deployment for managed sign-in, the page shows an Open Slate button that signs you in. If enrolment has not completed, the deployment page offers to enrol it again.

Slate's own pages are few. Settings (/settings) links to:

  • Members, the people who can sign in.
  • Sessions, your active sign-ins.
  • Authority, which controls whether sign-in is managed by Scalpels or by the app itself.
  • Installation credentials, where you issue the bearer credentials your applications use. See API credentials.

There is no screen for browsing sources or runs. You work with them through the API or the MCP tools.

Check that it is up

  • GET /up on the app's hostname returns 200 once the application has booted.
  • GET /api/v1/runs/41414141-4141-4141-8141-414141414141 with no Authorization header returns 401. This shows the API is mounted and refusing anonymous callers.
  • The Console in Scalpels lists the deployment with its vitals.

The first request after a quiet period can return 502 while the instance wakes from hibernation. Retry it.

The only real proof that the queue, the bucket and ffmpeg work together is a finished render. Once you have a credential, upload two images and an audio file, submit a two-page delivery recipe and download the result. The pages linked at the top of this page walk through each step.