Skip to content

Sprites

Required. sprites.dev is the sandbox platform every conversation runs in. It is a hosted service and currently the only backend — a Fountain instance is not fully self-contained without it.

The exact API surface Fountain consumes — and what a compatible replacement behind SPRITES_BASE_URL would have to provide — is written down in the Sprites contract.

Provider side

Create a sprites.dev account and issue an API token. That token is the whole provider-side setup.

Env vars

Variable Default Effect
SPRITES_TOKEN The platform token. Not checked at boot: the app starts without it, and the first conversation fails at provision time instead
SPRITES_BASE_URL https://api.sprites.dev Repoints the sandbox API. Anything else must implement the same contract; there is no bundled alternative
SPRITES_TIMEOUT_MS 30000 Bounds every HTTP call to the Sprites API. Long-running commands (package installs, clones) set their own per-call timeouts. Boot refuses a non-positive value

The cost model

One platform token pays for every sandbox. Fountain provisions all tenants' sandboxes with SPRITES_TOKEN and the bill lands on that token's account — on the hosted instance, subscription pricing recovers it; on yours, you are the one paying. Two consequences:

  • Every signup that can start a conversation can spend your money. Close registration, or restrict it, before putting an instance on the internet.
  • Per-user concurrency is capped (max_concurrent_sandboxes, default 5, adjustable per user from the admin panel). Sandboxes count from the moment provisioning begins, because that is when they start being paid for.

The token is never surfaced to tenants, the admin UI, or the sandboxes themselves — a sprite receives only a scoped, expiring token whose sole audience is your Fountain instance's own API.

Verify

Start a conversation. Provisioning progress streams as stage events; a bad or missing token surfaces as the provision stage failing, visible in the conversation's log view. A Sprites outage does not affect anything else — sign-in, dashboards and configuration keep working, and the health endpoints deliberately do not consult Sprites.