SketchBenchJoin the waitlist

One tool for designing software systems.

SketchBench keeps one model of how your system works, and generates the diagrams, schemas, API code and docs from it.

One model, many perspectives.
One checkout system, seen from every perspective the work needsOne checkout system, shown as the perspectives you can take on it — the surfaces you edit it through and the artefacts you export and own. A diagram surface holds Web app, API, Postgres, Worker and Stripe with hand-written sticky notes pinned beside them. Below it: the data model as charges and customers tables, a Zod validation schema, a Python API with auth and rate-limit middleware, an OpenAPI specification, an MCP server exposing the API to agents, a sequence view showing a charge being authorised over time, a published documentation page, and generated infrastructure code. Beside the diagram, a chat panel shows someone asking for a retry worker in plain language and the assistant proposing the change for acceptance. The charges endpoint is highlighted throughout, showing these are views of a single model rather than separate documents.1 · DIAGRAMWeb appSPAAPIPOST /chargesPostgresDATA STOREWorkerRETRIESStripeEXTERNAL~2k charges/ dayPCI — no carddata at restretriesidempotent??+2 · CHATyouadd a retry workersketchbenchAdded Worker · retriesand wired API → Worker.Nothing else changed.PROPOSED — ACCEPT?Ask for a change…3 · DATA MODELchargesiduuidamount_centsintstatusenumcustomer_id→ fkcustomersiduuid9 · DOCS PAGECreate a chargePOST /chargesCharges a customer'ssaved card.amountintegercentscurrencystringisocustomerstringid8 · SEQUENCEWeb appAPIStripePOST /chargesauthorizeapproved201 created4 · ZOD SCHEMA// charge.schema.tsexport const Charge =z.object({id: z.string().uuid(),amount: z.number().int(),status: z.enum(["paid", "failed",]),})5 · PYTHON API# api/charges.py@requires_auth@rate_limit(rpm=100)@app.post("/charges")async def create(body: Charge,) -> ChargeOut:return await svc.create(body)6 · OPENAPIopenapi: 3.1.0paths:/charges:post:operationId:createChargeresponses:"201":$ref: Charge7 · MCP SERVER// mcp/server.tsserver.tool("create_charge",Charge.shape,async (input) => {return api.create(input)},)// the design, callable10 · INFRASTRUCTURE# from deployment viewresource "worker" "api" {name = "checkout-api"route = "/charges"kv = ["charges"]# TODO: iam, vpc}resource "pg" "db" {size = "small"}

01 What SketchBench does

Everything comes from one design.

Diagrams, schemas, API code and docs are generated from the same model, so they agree with each other.

Diagrams that stay current

Change the design and every diagram redraws from it, so the picture still matches the system.

Schemas and API code from your design

The interfaces you define become validation schemas, an API spec, and route handlers to build on.

Edit the design by describing it

Say what you want changed and it updates the model, so trying a second approach is cheap.

Context your coding agent can use

Export the design as structured context so your agent builds against the real system.

02 Surfaces

Each surface edits the model directly.

Pick whichever suits the change you are making.

  • WhiteboardInk, shapes, sticky notes, loose arrows. No schema.
  • DiagramTyped nodes, validated connections, auto-layout.
  • OutlineStructured editing of any node. Detail and bulk edits.
  • Prose briefWrite a paragraph. Get a structure you can edit.
  • ChatConverse with an agent that edits the model directly.
  • Text / DSLThe model as compact text. Precise, diffable.
  • ImportIngest a repo, an OpenAPI spec, an existing diagram.

03 Outputs

Everything leaves as a file you own.

Open formats you can commit straight into your repo.

Documents

  • DiagramsSVG and PNG
  • MermaidRenders in any Markdown
  • Design docNarrative Markdown
  • Decision logOne file per ADR
  • API referenceA publishable docs page
  • Agent context packFor Claude Code, Cursor, and the rest
  • Model JSONThe whole thing, portable

Code

  • Type schemasZod, Pydantic, JSON Schema
  • OpenAPI 3.1The contract clients build against
  • API scaffoldHandlers and middleware, TS or Python
  • MigrationsSQL from the data model
  • MCP serverYour system, callable by an agent
  • InfrastructureTerraform, Pulumi, CDK

04 Being straight with you

What SketchBench is not.

  • Not built yet. This is a waitlist, not a download. Nothing here is available to use today.
  • Not a general-purpose whiteboard. Whiteboarding is scoped to system design — it is the untyped way into a model, not a canvas for retros.
  • Not an IDE, and not the owner of your codebase. Generated code is a first version you review, edit, and keep. Anything the model does not determine is marked TODO rather than filled in with a confident guess.
  • Not a deployment tool. It writes infrastructure code. It never runs it, holds your credentials, or operates anything.
  • Not an enterprise architecture platform. No approvals, no governance, no review boards.

Know when it is ready.

One email when it ships. Nothing else, and no sharing your address with anyone.