$0.00when nobody is using it — guaranteed by the compiler

wispwisp

Compiles to serverless AWS primitives. Refuses to emit always-on infrastructure.

$bunx create-wisp-app my-app
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 };});

One file. wisp deploy ships an API Gateway route, a Lambda function, a DynamoDB table, and a least-privilege IAM role scoped to exactly this handler.

Six primitives. Nothing else.

Every wisp app is built from the same six building blocks — each one compiles to plain CloudFormation you can read.

The compiler refuses always-on infrastructure

Before wisp deploy touches your AWS account, it scans the synthesized CloudFormation template for anything that costs money while idle — an RDS instance, a NAT gateway, a load balancer, provisioned DynamoDB throughput. If it finds one, the deploy is blocked with the exact resource, its monthly cost, and a $0-idle alternative. No silent bill surprises.

Read how the denylist works