Why Use Wisp?
Why should you bother?
Ok, but why use Wisp? It's brand new, it doesn't have much traction or support, it has a single dev behind it, and it's in Rust (Ewwww, right?). Well, uh, no. I get it: when you pick a framework you're picking something you'll be stuck with for years, so you go with whatever has the biggest community, the most eyes on it and lots of packages and other support. That's the safe bet, and most of the time it's a fine one. But "everyone uses it" is the same reason everyone uses GitHub, and we all saw how that went. Popular and good are not the same thing, so let me make the case for the small, weird Rust one.
It's Fast. Like, Actually Fast
The first rule of Wisp, above everything else, is that it has to be ultra fast. Not "fast for a full-stack framework," not "fast enough," but fast. Every change that touches the request path gets an instructions-per-request A/B before it can merge, so nothing sneaks in and slows down your app because I felt like adding a feature that day. A route only pays for the features it actually uses; if you don't use sessions on a page, that page doesn't run session code.
On the TechEmpower plaintext test at 256 connections, same machine, same kernel, Wisp served a median of 1,658,445 requests a second against Actix Web's 905,206, and Actix Web is one of the fastest Rust servers there is. On JSON at 64 connections it was 175,194 against 129,597. Counting the actual CPU instructions spent per request, Wisp takes 7,816 on plaintext while Leptos, Dioxus and Actix Web take 13,859 to 17,187. Every one of those numbers has a date, a machine and a source file on the benchmarks page, and that page also lists the cells where Wisp is not ahead (not like the trust me bro ai benchmarks that are common place now).
Rust? Ewww
I know, Rust is ugly... it's true but that's not what writing Wisp looks like. A folder is a URL, and its +page.wisp file is the page: a little Rust at the top that loads data and handles forms, then your markup. A model, a saved table, a validated form action and a list fit in about twenty lines, and a prelude covers the imports so you're not writing use lines before you get to do anything.
Wisp lets you use the good part of Rust. No node_modules folder the size of a small moon, no undefined is not a function, and when you ship, the whole app (styles, static files and all) is one binary. Copy it to a server and run it. That's the deploy. If you'd rather host it on Cloudflare, Vercel, Netlify, Deno, Bun, Node or Lambda, there's a build target for each of those too.
Cheap in Tokens
This one matters more every month. Whether it's you or an AI writing the code, somebody is paying for every token that gets read and written, and a framework full of boilerplate is a framework that burns money. The same five features (a list, a form, an API, a layout and a search) take 477 tokens in Wisp, 1,134 in SvelteKit and 1,146 in Next.js. A bigger app with sign up, uploads and live refresh takes 1,016 in Wisp, against 3,668 in SvelteKit and 3,458 in Next.js. That's less than a third, and the full breakdown is on the tokens page.
Wisp is built for the AI age on purpose. AGENTS.md and llms-full.txt cover the whole framework, wisp mcp serves the docs straight to your coding agent, and since template mistakes are build errors, the AI finds out it messed up before you do.
Safe, Secure, and Honest About It
"New framework" usually means "nobody has tried to break it yet." I've been trying to break it myself. The HTTP/1 parser, HTTP/2 frames, JSON, forms, cookies, WebSocket frames and the signing code all get fuzzed. There's a table of request smuggling tricks that every single one has to be refused. There's no unsafe code outside a few small, listed spots (the Linux I/O drivers, the edge exports and one Windows thing for wisp dev), and the compiler enforces that. Every fast path gets tested at startup and falls back to a safe one if it fails, and if your handler panics, the visitor gets a 500 and the server keeps serving everyone else. It doesn't just fall over.
Sign in, sessions, CSRF checks, rate limits, signed cookies, two factor codes and OAuth are built in and hardened against the same attacks other frameworks get hit with. And every file in the project is re-audited line by line within three days of changing, plus at least once a month, enforced by a gate that blocks merges if anything is overdue.
So, Why Use Wisp?
Because it out-serves one of the fastest Rust servers out there, it takes about a third of the tokens to write, it gets fuzzed and audited on every change, and when you're done you get one file you can run anywhere. Try it for one weekend project; the quick start takes a few minutes. Worst case, you learned a little Rust. Best case, you never want to touch a node_modules folder again. And if you still hate it, go back to writing slow apps in js.