---
title: Quickstart
description: "Go from nothing to a deployed Sproutboat app in four commands."
---

## Prerequisites

- **Nothing but a package manager.** `npm install -g sproutboat`, `npx sproutboat`, `bunx sproutboat`, or `pnpm dlx sproutboat` all resolve a native, self-contained binary for your platform — no Bun runtime required to run it.
- **No C compiler needed either**, for `dev`, `--target host`, or `--standalone` builds on this machine: the CLI carries its own Zig, used as a fallback cross-compiler when it can't find one already installed.
- An account on a control plane you (or your admin) run. See [Get access](/get-started/access) if you don't have one yet.

:::tip
A deploy build takes roughly 8 to 12 seconds. `sproutboat dev` takes about 3.
:::

## Zero to deployed

1. **Sign in once, from a browser**

    <CodeGroup>

    ```sh Bun
    bunx sproutboat login --api-url https://control.example.com
    ```

    ```sh npm
    npx sproutboat login --api-url https://control.example.com
    ```

    </CodeGroup>

    This is the only step that needs a browser tab where you are signed in to the dashboard. It writes a long-lived token to `~/.config/sproutboat/credentials.json`.

2. **Scaffold a project**

    <CodeGroup>

    ```sh Bun
    bunx sproutboat init hello
    cd hello
    ```

    ```sh npm
    npx sproutboat init hello
    cd hello
    ```

    </CodeGroup>

    Writes `sproutboat.jsonc` and `src/index.js` under `./hello`.

3. **Edit the handler**

    Open `src/index.js` and make your changes. See [The handler](/concepts/handler) for the contract.

4. **Deploy**

    <CodeGroup>

    ```sh Bun
    bunx sproutboat deploy
    ```

    ```sh npm
    npx sproutboat deploy
    ```

    </CodeGroup>

    `deploy` prints the URL and waits until it serves. Re-running with no changes is a no-op.

## What's next

**[Standalone binaries](/get-started/standalone)**

Run Sproutboat without a control plane at all — one executable, your own box.

**[Bindings](/bindings)**

Attach KV, D1, R2, queues, and more to your handler.
