Install & run

One binary. Point it at a folder and you have a live site.

Get the binary

Crisptastic ships as a single self-contained executable — no language runtime, no system packages. Build it from a checkout with a pinned Rust toolchain:

cargo build --release -p crisptastic
./target/release/crisptastic --version

Release builds are produced reproducibly (built twice and compared) and packaged with signed supply-chain evidence. See the security model for what that covers.

Scaffold a project

crisptastic init my-site
cd my-site

init writes a minimal tree: an index.html.crisp, an assets/ directory, and a crisptastic.toml manifest with sensible local defaults commented in.

Run the dev server

crisptastic dev
# or point at any folder
crisptastic dev ./my-site --bind 127.0.0.1:6174

dev uses convention-first defaults, watches the source tree, recompiles on change, and serves assets with no-cache headers. The execution semantics are the production semantics — dev only changes watching and caching.

Inspect before you ship

crisptastic check ./my-site # compile and report diagnostics only
crisptastic routes ./my-site # list every route the build resolves

Every diagnostic carries a stable code. A failed build writes no output.

Command map

CommandPurpose
initScaffold a new project
devWatch + serve a source tree locally
run / serveServe a source tree without watch
checkCompile and report diagnostics
routesList resolved routes
build cbor / build capsuleProduce a deterministic artifact or Capsule
deployBuild, seal secrets, sign, and optionally publish a deployment Capsule
hostServe encrypted deployment Capsules by domain (production)
capsule publish / capsule pullMove Capsules to and from an object store
notifyTell a running host over mTLS to activate a published Capsule

Local secrets

Crisptastic reads only the variables you declare in crisptastic.toml under [env] and [env_from_process]. It never copies your whole environment. On macOS the recommended flow keeps values in the Keychain and exposes them only to the child process:

macrun set my-site production STRIPE_SECRET_KEY
macrun run my-site production -- crisptastic deploy .

CI and other platforms inject the same declared names through their own secret facility. Nothing is written to a second local store.