

Backends that cost nothing when nobody is using them.
Write your backend in TypeScript. wisp works out the AWS setup for you and deploys it to your own account. When traffic stops, the bill goes to zero.
bunx create-wisp-app my-appThis is the whole file.
There is no separate configuration to keep in sync. wisp reads your code, works out what it needs, and builds it.
- A database table, billed per request, so an idle table costs nothing.
- One function per route, so a slow endpoint can never hold up the rest of your API.
- Permissions that let this handler write to this table, and nothing else. You never write them by hand.
import { Api, Store } from "@vorynza/wisp";export const api = new Api("main");export const orders = new Store("orders", { partitionKey: { name: "id", type: "S" },});export const createOrder = api.post("/orders", {}, async ({ body }) => { const order = await orders.put({ id: crypto.randomUUID(), ...body }); return { status: 201, body: order };});The part nobody else does
wisp stops the deploy before it can cost you money.
Some AWS services charge by the hour whether or not anyone uses them. Before anything reaches your account, wisp checks for those and refuses to continue — so a surprise bill never gets the chance to happen.
✗ WISP-AON-003 Always-on resource rejected
This would create a NAT gateway.
It costs about $32.40/month even with zero traffic.
Instead, you could:
• Remove VpcConfig — wisp Store and Api never need a VPC.
Day-to-day
Real requests. Your laptop. No waiting.
Run wisp dev and traffic to your API is handed to the code on your machine. Save a file and the next request already uses it — there is no redeploy in the loop.
It reads and writes your real data, so what you see locally is what you get in production.
How local development worksSix building blocks. That's the whole framework.
Each one is a normal TypeScript class. You import it, use it, and wisp builds the matching AWS service when you deploy.
How it compares
Where wisp fits, and where it doesn't.
wisp is opinionated, and opinions have costs. Here is an honest read on what you gain and what you give up.
| Aspect | A server you run | Raw AWS tooling | wisp |
|---|---|---|---|
| Cost with no traffic | Runs 24/7 | Whatever you provisioned | $0, enforced at deploy |
| Scaling | You size and configure it | You size and configure it | Per request, automatic |
| Infrastructure setup | A separate config to maintain | A separate config to maintain | Read from your code |
| Permissions | Often one broad role | You write each policy | Derived per handler |
| Queues, cron, file storage | Add and wire a service | Wire each one yourself | Built in |
| Whose account it runs in | Yours | Yours | Yours |
Managed serverless platforms
Vercel, Netlify, Cloudflare Workers
These also scale to zero, so cost is not the difference. The difference is where your backend lives: wisp deploys into your own AWS account, and your functions talk to AWS services directly rather than through a platform.
Infrastructure toolkits
SST, AWS CDK, Terraform
These also deploy to your account, and they can express far more than wisp can. wisp gives up that range on purpose: it reads infrastructure out of your application code instead of asking you to describe it, and refuses anything that would bill while idle.
Server frameworks
Express, Fastify, NestJS
These have larger ecosystems and run anywhere, which are real advantages. They also assume a process that stays running. wisp has no server to keep alive, so there is nothing to pay for or patch between requests.
When wisp is the wrong choice
Better to know now than three weeks in. Any of these means you should probably pick something else:
- You need a relational database. wisp stores data in DynamoDB, and it blocks managed SQL databases because they bill by the hour.
- You need long-lived connections, such as a WebSocket server or a process that holds state between requests.
- You are not on AWS, or you need to stay portable across clouds.
- You depend on a specific framework ecosystem, like Express middleware.
One command to a working project.
You'll need an AWS account and about five minutes. wisp deploys to your account, so there's nothing else to sign up for.
bunx create-wisp-app my-app