Introduction
What wisp is, what it isn't, and the guarantee it enforces on every deploy.
wisp is a TypeScript backend framework that compiles your code to AWS infrastructure. You write Api, Store,
Queue, Schedule, Bucket, and Workflow declarations in plain TypeScript; wisp deploy reads them statically
and synthesizes CloudFormation — one Lambda function per route or event handler, a least-privilege IAM role derived
from exactly what that handler touches, and nothing else.
The invariant
Your backend costs $0.00 when nobody is using it. This isn't a tip or a best practice — it's enforced by the compiler. Before any deploy reaches your AWS account, wisp scans the synthesized template for anything that costs money while idle (an RDS instance, a NAT gateway, a load balancer, provisioned DynamoDB throughput) and blocks the deploy if it finds one. See the always-on denylist for the full rule table and how to override it when you really mean it.
What wisp is not
- Not an ORM.
Storeis a thin, typed wrapper over DynamoDB's own access patterns —get,put,query,transactWrite— not a query builder. - Not multi-cloud. wisp targets AWS. The IR has a seam for other targets, but only the AWS emitter ships today.
- Not a router. There is no request dispatcher at runtime. Routing is resolved at compile time: each route is its own Lambda, invoked directly by API Gateway.
- Not a hidden abstraction.
wisp synthwrites the real CloudFormation template to.wisp/cloudformation.json. If you want to know exactly what's about to touch your AWS account, it's right there — readable JSON, not a black box.
Six primitives
Every wisp app is built from the same six building blocks:
Api & Route
HTTP routes on API Gateway, one Lambda each.
Store
A DynamoDB table, on-demand billing only.
Queue
SQS with a DLQ and partial-batch-failure handling.
Schedule
Cron and rate expressions on EventBridge Scheduler.
Bucket
S3 storage with presigned uploads and event handlers.
Workflow
Durable, multi-step functions on Step Functions.
Where to go next
- New to wisp? Start with Getting Started — you'll have a route deployed to your own AWS account in a few minutes.
- Want to understand how permissions work? IAM derivation explains why wisp never asks you to write an IAM policy by hand.
- Building something bigger?
examples/crud-apiin the wisp repo exercises all six primitives together.

