Skip to content
sproutboat
Esc
navigateopen⌘Jpreview
On this page

Overview

Sproutboat turns one JavaScript fetch handler into a static native binary you deploy and run yourself.

Sproutboat turns one JavaScript fetch handler into a static native binary and runs it on a Linux box you (or someone you trust) control. The build uses Porffor ahead-of-time compilation plus Zig. Production runs no Node, no V8, and no container. A small sidecar next to each deployment serves the bindings: KV, D1, R2, queues, cron, secrets, Durable Objects, static assets.

How it fits together

Piece Role
Your handler (src/index.js) One file, one default export, fetch(request) plus optional scheduled/queue. Compiled ahead of time — no interpreter in production.
The sprout The compiled native binary. One process per deployment, one request in flight at a time.
The broker A sidecar next to the sprout that serves every env.* binding call over loopback RPC.
The control plane Stores artifacts, starts sprouts behind Caddy, issues TLS, and runs the CLI-facing API. Not needed at all for a standalone binary.

Get started

Was this page helpful?