Ferrite Docs

Quickstart

Create a Ferrite web app, run it with live reload, verify it, and deploy a preview.

View as Markdown

Create a source-deployable Rust web app and open it locally in a few commands. The generated project includes static content, an API route, server-sent events, a health route, and a deploy manifest.

Create the app

ferrite new webapp hello-ferrite --with-tests
cd hello-ferrite

The project is self-contained. It does not depend on a Ferrite source checkout.

hello-ferrite/
├── Cargo.toml
├── ferrite.json
├── site/
│   └── index.html
└── src/
    └── main.rs

Run the development server

ferrite dev

Ferrite prints the local URL first, then reports content and compiler changes:

▲ Ferrite 0.1.0
- Local:        http://127.0.0.1:8787
- Network:      http://192.0.2.10:8787
- Project:      /path/to/hello-ferrite

✓ Starting...
✓ Refreshed web content (1 files) in 0ms
○ Compiling Rust application ...
✓ Compiled Rust application in 1.9s
✓ Ready in 1.9s

Open the Local URL. Edit site/index.html to see a browser refresh without a Rust build. Edit src/main.rs to see Ferrite rebuild and restart the function while retaining plane state.

Check and test

ferrite check
ferrite test

check evaluates the deployment spec, application admission rules, and Rust source. test runs the crate’s tests. Add --json to check or dev when an agent or CI job needs structured lifecycle events.

Deploy the app

ferrite login --ephemeral
ferrite deploy

Ferrite sends the source through admission and an attested build, then prints the deployed host after the application is running. For unverified work that should be isolated and automatically expire, use ferrite preview instead.

What you have now

  • A local gateway with API, content, SSE, and live reload.
  • Persistent local plane state under .ferrite/state.
  • A manifest that declares resources, routes, compute, egress, and limits.
  • A separate ferrite preview path for unverified, throwaway work.
  • The same app contract for human CLI use and agent automation.

Next, learn Ferrite CLI, add a Queue, or make the app agent-native.