Installation

bext ships as a single statically-linked Rust binary (bext-server, typically aliased as bext). There is no Node runtime requirement on the server — the binary embeds V8, Bun, and the Turbopack bundler.

Install script (recommended)

The fastest way:

curl -fsSL https://bext.dev/install | sh

The script detects your platform, downloads the latest binary from GitHub Releases, verifies the SHA256 checksum, and installs to /usr/local/bin (or ~/.local/bin if you don't have sudo).

Environment variables:

Variable Default Purpose
BEXT_VERSION latest Pin to a specific version (0.1.2)
BEXT_INSTALL /usr/local/bin Override install directory
BEXT_NO_MODIFY_PATH unset Skip PATH modification

To upgrade an already-running server with zero downtime (socket hand-off, no dropped connections):

curl -fsSL https://bext.dev/install | sh && bext upgrade

See Zero-downtime upgrades for details.

From source (Cargo)

If you need a custom feature combination, build from source:

# Clone and build with default features
git clone https://github.com/benfavre/bext
cd bext
cargo build --release -p bext-server

# Or directly via cargo install
cargo install --git https://github.com/benfavre/bext bext-server

The default-features build links V8, Turbopack, the Tailwind v4 engine, and the React Compiler — enough to run PRISM and Next.js sites out of the box. See Architecture overview → Feature flags for the full feature matrix and minimal-build commands.

Docker

docker pull ghcr.io/bext-dev/bext:latest
docker run -p 3000:3000 -v ./my-site:/app ghcr.io/bext-dev/bext:latest

The image is ~25 MB (statically linked, stripped). Mount your site directory at /app and bext will serve it.

Verify

bext --version
# bext 0.x.y

Scaffold a project

bext doesn't ship with a Bun-style create-app template generator — PRISM is small enough that the Quickstart walks you through the three files needed (page.tsx, bext.config.toml, tsconfig.json) by hand. Once you've done it once, copy that directory as the template for new sites.

For an existing project (Next.js, Hono, etc.), run bext init from inside the project directory — it scaffolds a sensible bext.config.toml based on the framework it detects:

cd my-existing-app
bext init             # interactive
bext init --yes       # use defaults

Then start the server:

bext run .

Next steps