screenjson binary, and writes results back.
Architecture
- Backend — Go HTTP server (port 8080 by default) with a worker pool and a supervised
worker.Loopper CPU. - Queue — Redis, with configurable input / results lists.
- Storage — S3-compatible object store (AWS S3, MinIO, or
noopfor local dev). - Engine — wraps the
screenjsonCLI binary. - Task executor — runs declarative task pipelines defined in
config/tasks.yml. - Frontend — Svelte + TailwindCSS SPA served by the Go binary. Job list, live progress, submission, task catalogue.
- Notifications — optional fan-out to Slack, Teams, Discord, FCM, APNs, SNS, WebPush.
What you can do with it
- Ingest a bucket of
.fdxfiles nightly, convert them all to ScreenJSON, validate, and file the output. - Expose a REST submission endpoint to other services — jobs come in, get queued, get processed, get webhooked back out.
- Compose pipelines of tasks (convert → validate → encrypt → zip) without writing bash.
- Run the same binary as your
screenjson serveinstance, but queued, retry-backed, and observable.
Not in scope
- Not a website CMS. UI is for operators, not end users.
- Not a multi-tenant billing platform. Single tenant per deployment.
- No built-in authentication UI — it does basic auth and a shared bearer token if configured.