wispwisp

Introduction

What wisp is, what it isn't, and where to go next.

wisp is a TypeScript backend framework that compiles your code into AWS infrastructure. You declare Api, Store, Queue, Schedule, Bucket, and Workflow in plain TypeScript. wisp deploy reads those declarations, works out the infrastructure they need, and creates it in your own AWS account.

Your backend costs $0.00 when nobody is using it — and that isn't advice, it's enforced. Before a deploy reaches AWS, wisp checks the infrastructure it's about to create for anything that bills by the hour, and stops if it finds one.

src/app.ts
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 getOrder = api.get("/orders/{id}", {}, async ({ params }) => {
  const order = await orders.get({ id: params.id });
  return order ? { status: 200, body: order } : { status: 404, body: { error: "not_found" } };
});

That deploys an API Gateway route, one Lambda function, a DynamoDB table, and an IAM role that lets this one handler read this one table.

New to wisp?

Build

Understand

Ship

What wisp is not

  • Not an ORM. Store is 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 internal model has a seam for other targets, but only the AWS backend ships today.
  • Not a router. There's no request dispatcher at runtime. Each route is its own Lambda, invoked directly by API Gateway.
  • Not a hidden abstraction. wisp synth writes the real CloudFormation to .wisp/cloudformation.json. If you want to know exactly what's about to touch your account, it's right there in readable JSON.

On this page