public micro-VM
Sprite Sandbox
Primitive: a `POST https://api.sprites.dev/v1/sprites` with `{ name, url_settings: { auth: "public" } }` — fly.io mints a fresh isolated micro-VM and returns a public URL you can hand straight to a user
UI: a launch button that spins up a disposable, shareable sandbox on demand
instant asset push
Filesystem Drop
Primitive: `PUT https://api.sprites.dev/v1/sprites/{name}/fs/write?path=/root/www/index.html` with an octet-stream body — writes files (index.html, JSON, generated assets) straight into the sandbox and auto-creates parent dirs
UI: a compose surface that pushes freshly-authored HTML, JSON, or media into the live sandbox
wake-on-request server
Long-running Service
Primitive: `PUT /sprites/{name}/services/{svc}` with `{ cmd, args, dir: "/root/www", http_port: 8080, needs: [] }` then `POST /services/{svc}/start` — runs any long-running process (python http.server, ffmpeg loop, socket relay) that wakes on the first request
UI: a launcher that boots a running process — HTTP server, streaming loop, playback engine — and hands the user its public URL
run any shell command
One-shot Exec
Primitive: `POST /sprites/{name}/exec?cmd=bash&cmd=-lc&cmd=<script>` with only an `Authorization` header — runs a shell command inside the sandbox and streams stdout back, terminated by 0x03 + exit code
UI: a prompt-driven console that runs a shell command in the sandbox and streams the output back to the user