01 — One file
That's the whole backend.
Point Shape at any database. The framework auto-generates JSON, OData, REST, OpenAPI, MCP, and LLM-tool definitions from your schema. No entity classes. No controllers. No DTO layer.
<?php
require __DIR__ . '/../vendor/autoload.php';
Shape\ShapeApp::quickStart(__DIR__ . '/../.env')->serve();
02 — One AGENTS.md
Your AI's onboarding doc.
~5k tokens of framework conventions. Drop into Claude / ChatGPT / Cursor / Codex once — the AI's defaults are now Shape-shaped. Errors are self-documenting (expected / example / hint); the manifest is one fetch away.
curl https://raw.githubusercontent.com/\
urbidata/shape/main/AGENTS.md \
| pbcopy
# Paste into your AI of choice.
03 — Production by default
Not behind a paywall.
JWT + OIDC (Entra/Auth0/Okta), audit log, soft-delete, audit columns, SQL-bounded pagination, ETag/Cache-Control, MCP server, OpenAPI — every one detected by convention or shipped in the box. Zero opt-in needed.
# What you don't have to write:
- routes - audit log
- auth - soft-delete
- DTOs - pagination
- MCP server - cache headers