---
title: Overview
description: "Sproutboat turns a JavaScript or TypeScript fetch handler into a native binary you run yourself."
---

Sproutboat turns a JavaScript or TypeScript `fetch` handler into a native Linux binary you run on your own server. Build a [standalone executable](/docs/get-started/standalone), or deploy to a [self-hosted platform](/docs/get-started/install) for HTTPS, logs and rollbacks. Production runs no Node or V8.

:::note
This page is written to be read by a coding agent. Every step below has a non-interactive path. A plain-text copy of the whole site is at [`/llms.txt`](/docs/llms.txt).
:::

## How it fits together

| Piece | Role |
| --- | --- |
| **Your handler** (`src/index.js` or `src/index.ts`) | One default export with `fetch`, plus optional `scheduled` and `queue`. Static imports are bundled before compilation. |
| **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 serves the CLI's API. A [standalone binary](/docs/get-started/standalone) runs without it. |

## Get started

**[Quickstart](/docs/get-started)**

Go from nothing to a deployed sprout in four commands.

**[Bindings](/docs/bindings)**

KV, D1-compatible SQLite, R2-compatible object storage, queues, secrets, cron, Durable Objects and more.

**[CLI reference](/docs/reference/cli)**

Every `sproutboat` command and environment variable.

See [Architecture](/docs/concepts/architecture) for the build and runtime components, and [Runtime compatibility](/docs/concepts/compatibility) for tested JavaScript APIs and npm packages.
