Developer-defined content

Full-stackReleased · Preview

Add a typed CMS to your existing React or Next.js app.

BTST turns TypeScript content models into database-backed APIs, generated forms, and editorial routes inside your app; you own public rendering.

Best for

Teams that want developers to own content models while editors manage records through an in-app admin interface.

Requires
A BTST database adapter; Code-defined Zod content types
External service boundary
None required
Ownership boundary
Content models live in your code and records stay in your database. You own public rendering and uploads; the packaged admin pages can be overridden or ejected.
Two real BTST CMS states showing code-defined content types in the dashboard and stored Product records in the generated application.
CMS turns application-defined Zod content types into an operator dashboard and stored records; public rendering remains an application-owned workflow.

BTST supplies

  • Content-type and content-item data models with typed CRUD APIs and lifecycle hooks
  • Admin routes for content-type lists, entries, creation, and editing
  • Schema-driven forms generated from adopter-defined Zod content types
  • Client hooks plus customizable and ejectable admin pages

You supply

  • Code-defined Zod content types and application-owned public rendering
  • A BTST database adapter
  • An image upload implementation when file fields are enabled
  • Authorization rules when content operations are protected

You own and customize

Content models live in your code and records stay in your database. You own public rendering and uploads; the packaged admin pages can be overridden or ejected.

Compatibility and dependencies

Maintained integrations
Next.js 15+ App Router · React Router v7 · TanStack Start
Requires
A BTST database adapter; Code-defined Zod content types
External services
None required

From registration to result

The shipped workflow

This is the feature path BTST supplies—not a claim that your app needs no integration work.

  1. Model

    Define each content type as a shared Zod schema in your app.

  2. Generate forms

    Turn schema fields and metadata into validated operator-facing forms.

  3. Manage

    Create and edit typed content records through the admin routes.

  4. Render

    Load records with packaged hooks and present them on application-owned routes.

Continue your task

Move from evaluation to the right implementation boundary.