Architecture

Slate system map

Home

System purpose

Scene input to verified production pack

Slate turns a script scene into a versioned production pack with storyboards, an animatic, shot lists, temp audio, captions, provenance, and optional Backblaze B2 archive storage.

Product flow

  1. Script scene
  2. Project record
  3. Version record
  4. Pipeline events
  5. Generated assets
  6. Local or B2 storage
  7. Provenance manifest
  8. Hash verification
  9. Version comparison
  10. Approved production pack

Runtime architecture

  1. Next.js UI
  2. FastAPI backend
  3. SQLite database
  4. Mock or Genblaze pipeline runner
  5. Local storage or Backblaze B2
  6. Manifest and hash verifier

Frontend screens

  1. /
  2. /projects/new
  3. /projects/[id]
  4. /projects/[id]/versions/[versionId]
  5. /projects/[id]/compare
  6. /public/packs/[slug]
  7. /architecture

Backend responsibilities

  1. Create projects and versions
  2. Run the generation pipeline
  3. Emit Server-Sent Events for live progress
  4. Generate or upload assets
  5. Store asset metadata in SQLite
  6. Write provenance manifests
  7. Verify SHA-256 hashes
  8. Approve and publish production packs

Database

SQLite stores metadata in `projects`, `versions`, `assets`, `pipeline_events`, and `approvals`. Files live in local storage during development or Backblaze B2 when credentials exist.

Storage

Local mode writes to .local-storage/slate/projects/{project_id}/versions/{version_id}/.B2 mode keeps the same local files for verification and stores B2 object keys on each asset row.

Mock output contract

Generated files

scene.txtbrief.jsonscene-breakdown.jsonstyle-bible.jsonshot-list.jsonmood-01.pngmood-02.pngmood-03.pngcharacter-mara.pngframe-01.pngframe-02.pngframe-03.pngframe-04.pngframe-05.pngcaptions.srttemp-audio.mp3animatic.mp4production-pack.zipprovenance-manifest.jsonevents.ndjson

Provider handoff

Genblaze plan

`MockPipelineRunner` owns the working contract. Real Genblaze calls belong in `GenblazePipelineRunner.run`, while preserving event names, asset filenames, manifest fields, and asset table writes.

Run mock demo