Introduction

FastBackend automates the repetitive ~90% of backend work: CRUD, relationships, validation, filtering, and OpenAPI from your database schema. You write custom code only for business logic — overrides and custom routes for the 10% that matters.

FastBackend is a backend runtime, not a codegen tool. Your schema compiles to a framework-agnostic IR. A runtime adapter serves REST routes in memory at startup. OpenAPI is written to disk for frontend tools and API consumers.

Schema → IR → runtime adapter → live REST + OpenAPI

Runtime vs codegen

FastBackend is FastBackend is not
A runtime that serves routes from IR at startup A tool that writes CRUD route files you maintain
IR + OpenAPI on disk Generated routers committed to git
Custom routes for business logic A replacement for all backend code

What gets written vs what runs

Written to disk Runtime only (in memory)
.fastbackend/ir.json REST routes (CRUD, relationships, custom)
.fastbackend/openapi.yaml Validation (Pydantic or Zod)
Query builders

What you own

You own FastBackend never modifies
models.py / schema.prisma Schema files
fastbackend.yaml Config
app/custom/* or src/custom/* Custom endpoints

Runtime adapters

Adapter Stack Schema formats
FastAPI Python SQLAlchemy, Prisma
Express TypeScript Prisma

@fastbackend/core and @fastbackend/cli are adapter-agnostic.

Frontend integration

fastbackend generate writes .fastbackend/openapi.yaml. Any frontend can consume it:

  • Vue / React / Svelte / Angular: Orval, openapi-typescript, Hey API
  • UIGen: React admin UI from the same OpenAPI file

OpenAPI is the handoff point between backend and frontend.

Packages

Published on npm:

Published on PyPI:

Roadmap

Planned (not shipped yet): declarative wiring for storage, OAuth, and other services — provider + URLs in fastbackend.yaml, secrets in .env. Same philosophy: automate boilerplate, custom code when you need it.

Examples