Code and Let Live

What Sprites.dev Provides

  • Described as fast-starting, fast-pausing persistent VMs that scale to zero, with durable storage and an API for executing commands.
  • Mental model: “disposable computers” you can create in seconds, keep around sleeping, and restore via checkpoints (VM-level snapshots of disk + memory).
  • Positioned as especially well-suited to AI code agents: you can let them “go wild” in an isolated, persistent environment and roll back if needed.

Comparison to Existing Tools

  • Similarities drawn to EC2, DigitalOcean VPS, Cloudflare containers, exe.dev, container-use, LXC/Incus, libvirt, and Docker.
  • Distinguishing features emphasized in the thread:
    • Near-instant creation + auto scale-to-zero.
    • First-class checkpoint/rollback semantics at VM granularity.
    • Full-VM isolation vs containers sharing a kernel, for untrusted code.
    • Built-in tooling (e.g., preconfigured AI agent, routing, HTTPS).
  • Some argue local VMs/containers (libvirt, LXC, Incus) already cover similar workflows; others prefer managed, elastic cloud over maintaining personal infra.
  • A local/open-source Rust implementation of the same UX is mentioned as “coming.”

Use Cases and Workflows

  • Developer sandboxes for AI agents (Claude Code, Codex, etc.) with persistent state but constrained blast radius.
  • “Sandbox API” for running untrusted user code via JSON calls, then rolling back to a clean checkpoint.
  • CI/CD runners launched per job, preview environments, and quick experiment environments (“when in doubt, make another one”).
  • Personal or small apps needing cheap, durable backends (e.g., SQLite-backed sites, personal MDM-like tools).
  • Production workloads are generally advised to stay on Fly Machines; Sprites are framed as exploratory/dev infrastructure.

Architecture, Security, and Performance

  • Under the hood: KVM VMs; Firecracker is mentioned in the marketing, and users speculate about virtio devices and a copy-on-write storage stack, possibly JuiceFS-based, but details are deferred to a promised follow-up post.
  • Debate over whether storage stack should live inside or outside the VM for safety; consensus that VM isolation is stronger than containers for untrusted code.
  • Idle behavior: primarily network-activity-based; open consoles or exec sessions keep Sprites awake.

Pricing, Limits, and Reliability

  • Billing model: pay for compute while active; storage billed on used GB, not allocated capacity; idle Sprites mostly cost only storage.
  • Questions and concerns about:
    • Concurrent Sprite limits (3 on PAYG, 10 on a higher tier) and suitability for high-concurrency use.
    • Lack of clear spending/usage visibility and per-Sprite limits.
    • Fly’s broader history of API flakiness, billing issues, and support responsiveness; some users explicitly warn against relying on this for critical workloads.

DX, Documentation, and Rough Edges

  • Strong enthusiasm for the core UX and concept, especially checkpoints and “no-brain” environment creation.
  • Early friction points:
    • Quickstart API example missing content-type, causing initial failures.
    • Installer/auth commands hanging for some users.
    • Confusion about GitHub auth, OIDC, and available in-VM APIs.
    • Region lock-in leading to high latency for remote terminals.
    • Environment leakage (e.g., $SHELL, locale) from local machine into Sprite causing odd states and potential sensitivity concerns.
  • Feature requests include: GPU Sprites, custom base images/minimal images, Sprite cloning/forking (acknowledged as coming), cron-like wakeups, stricter network egress control, mobile/Termux CLI, and Vercel-style authenticated preview URLs.