Plugins
Available plugins and features for BTST
BTST ships installable capabilities with different boundaries. Full-stack plugins register backend and client behavior. OpenAPI is backend-only, Route Docs is client-only, UI Builder is client-only and depends on CMS, and Better Auth UI is a companion for an application that already runs Better Auth.
Every capability below is released and installable. Choose a page to see its actual payload and prerequisites; the catalog does not mix roadmap ideas into the available inventory.
Representative decision guides
These three entries establish the decision pattern for a complete feature, a workflow-heavy feature, and an intentionally one-sided plugin.

Blog
Publish and manage a content section inside the React application you already run.
- Requires
- A BTST database adapter
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start

Form Builder
Let operators design forms visually, publish them inside your app, and collect validated submissions.
- Requires
- A database adapter with isolated transaction support
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start

OpenAPI
Expose an OpenAPI 3.1 contract for registered BTST routes and, when useful, an interactive API reference.
- Requires
- A registered BTST backend stack to inspect
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start
More released plugins

AI Chat
Add a streaming conversation surface while choosing the model, access policy, and operating limits yourself.
- Requires
- An AI SDK language model; A database adapter with isolated transaction support for authenticated persistence
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start

CMS
Define structured content in TypeScript and give operators generated forms for managing it.
- Requires
- A BTST database adapter; Code-defined Zod content types
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start

UI Builder
Let operators compose pages visually, store the layout through CMS, and render it on routes you own.
- Requires
- The CMS plugin, added automatically by the CLI
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start

Kanban
Add boards, columns, tasks, priorities, and drag-and-drop workflows inside your product.
- Requires
- A database adapter with isolated transaction support
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start

Comments
Attach threaded discussion and moderation to a resource your application already owns.
- Requires
- A BTST database adapter; An adopter-owned host resource
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start

Media
Upload, organize, register, and reuse media through a library that runs with your storage.
- Requires
- An isolating Prisma, Drizzle, or Kysely database adapter for persistent writes; A configured media storage adapter
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start

Route Docs
Generate an explorable reference for the client routes already registered in your BTST stack.
- Requires
- Registered BTST client routes to inspect
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start
Better Auth UI
Add auth and account routes to a BTST client stack that already has a Better Auth backend.
- Requires
- An existing Better Auth backend and browser client; The supported @btst/better-auth-ui and Better Auth package cohort
- Maintained paths
- Next.js 15+ App Router · React Router v7 · TanStack Start
Build a plugin
Versioned technical metadata
Build-time consumers can import PLUGINS and the PluginDecisionMeta type from
@btst/codegen/meta. The contract carries technical inventory such as topology,
relationship, maturity, dependencies, maintained integrations, and canonical
docs, demo, and source identifiers. Audience copy, workflow wording, and calls
to action remain presentation-owned.
Prop
Type
Consumers that cannot wait for a package release can read the checked-in
plugin-decisions.json
during their build or content-validation step. Pin the raw URL to a commit when
reproducibility matters. The same artifact is published as
@btst/codegen/plugin-decisions.json; check schemaVersion before consuming its
eleven released plugins records. Do not fetch it from the browser at runtime.
After changing PLUGIN_DECISIONS, regenerate and verify the artifact from the
repository root:
pnpm --filter @btst/codegen plugin-decisions:generate
pnpm --filter @btst/codegen plugin-decisions:check