$ fn0 — pronounced f-n-zero
You build the service.
We handle the rest.
fn0 is an open-source, batteries-included FaaS platform powered by WebAssembly — a reasonable alternative to Cloudflare Workers.
cargo binstall fn0-cli
$ why fn0
All-in-one, without the ceremony
Easier to build.
Easier to deploy.
fn0 init scaffolds a project; fn0 deploy ships it. No Dockerfiles, no YAML, no infrastructure to babysit.
Any language that compiles to Wasm
fn0 runs WASI 0.2 components on wasmtime. Rust and JavaScript/TypeScript are supported today; more arrive as the ecosystem grows.
Local is production
fn0 local runs the same runtime on your machine. What works locally works deployed — no staging surprises.
Open source, no lock-in
AGPL-3.0 on GitHub. Self-host on AWS or OCI with adapters, or let fn0 Cloud run it for you.
$ full-stack
Full-stack web apps on fn0
fn0 runs anything that compiles to Wasm — bring your own stack. And when you're building a server-rendered web app, Forte makes it easier: React pages rendered on the server, typed server actions, a document database, and object storage — one repo, one deploy command. This page is served this way.
Meet Forte →#[derive(Serialize)] pub struct Props { pub message: String, } pub async fn handler( _req: ForteRequest<'_>, ) -> Result<Props> { Ok(Props { message: "typed, server-rendered".into(), }) }
$ fn0 cloud
fn0 Cloud is coming
A managed fn0 — you deploy, we run it. Two plans are in the works.
$0
For hobby projects and trying things out.
| Projects | 1 | |
| fn0.dev subdomain | Included | |
| Custom domains | — | |
| Monthly quotas | TBA | Sized for trying things out and development traffic. |
$1 / month
≈ 2,000,000 server-rendered requests, every month
For small production services — a real domain, a database, storage, queues, and cron behind one deploy command.
| Projects & domains | ||
| Projects | 1 | |
| Custom domains | 1 | Automatic TLS — point a CNAME and you're done. |
| fn0.dev subdomain | Included | |
| Compute | ||
| CPU pool | 500 min / mo | ≈ 2M server-rendered pages at ~15 ms each. Pooled monthly, not daily — a launch-day spike won't hit a wall. |
| CPU per request | 50 ms | Only your code counts. Waiting on a database or an LLM API costs nothing. |
| Network | ||
| Compute egress | 20 GB / mo | SSR pages and API responses leaving your handlers. |
| Object storage downloads | Unlimited | Served through the CDN cache — never metered, never counted as egress. |
| Document database | ||
| Active databases | 1 | |
| Storage | 500 MB | |
| Row reads | 150M / mo | |
| Row writes | 1M / mo | A busy community site writes ~300k a month. |
| Object storage | ||
| Storage | 10 GB | |
| Uploads | 100k / mo | |
| Downloads | Unlimited | Served through the CDN cache. |
| Queues & cron | ||
| Queue tasks & cron runs | Shared CPU pool | They spend the same CPU minutes as requests — nothing extra to buy. |
| Cron jobs | 10 / project | 1 minute minimum interval. |
| Queue message size | 128 KB | |
| Queue backlog | 100k messages | |
Monitoring & logs
See what your service is doing without leaving fn0.
Pay-as-you-go overage
Keep growing past the included quotas without hitting a wall.
Bring your own R2 / Turso
Connect your own bucket or database — your resources, your limits.
A higher tier
For services that outgrow a dollar.
$ limits
Per-request limits
Applied to every invocation on fn0 Cloud, on every plan. Run fn0 yourself and these limits are yours to change.
All limits & quotas →| Request headers | 128 KB |
| Request body | 100 MB |
| Response headers | 128 KB |
| Response body | Unlimited |
| Memory | 128 MB |
| CPU time | 50 ms |
| Max duration | 15 seconds |
| Subrequests | 50 per request |
$ waitlist
Join the waitlist
fn0 Cloud isn't open yet. Leave your email and we'll let you know the moment it is.