Review

Inspect the generated API with OpenAPI, and generate a typed SDK or dashboard app.

Once the project runs, you can generate a full OpenAPI specification from your registered route shapes - including the createCRUD endpoints:

deno task generate:openapi

Every endpoint we defined is tagged under the CMS group thanks to .group("CMS"), so they're neatly organized in the generated spec. Import the resulting specification into Swagger UI, Postman, or any OpenAPI viewer to explore the available endpoints:

MethodPathSource
POST/posts/apicreateCRUD
GET/posts/apicreateCRUD (public)
GET/posts/api/:idcreateCRUD (public)
GET/posts/api/countcreateCRUD (public)
PATCH/posts/api/:idcreateCRUD (tenant-scoped)
DELETE/posts/api/:idcustom soft-delete

Generating a client SDK or dashboard

You can also generate a fully typed client SDK, or a ready-made dashboard app:

deno task generate:sdk   # typed TypeScript client for your API
deno task generate:app   # dashboard app in the public folder

See CLI Tasks for the complete list of generators.

Because the OpenAPI spec is generated from your shape() / createCRUD definitions, keeping your Zod schemas accurate gives you accurate docs and SDKs for free.

Where to go next

You've now built a complete multi-tenant CMS API. To go further:


On this page