Skip to content

createAdmin

createAdmin(config): object

Defined in: packages/admin/src/create-admin.ts:40

Create a complete admin panel from your Drizzle schema.

Introspects your schema, applies any TableOverrides, and produces a { loader, action, Component } triple that you mount on a single React Router route. The admin panel includes list views, detail views, create/edit forms, user management, and a dashboard — all derived from your schema and permissions.

For server/client code splitting, use the individual factories (createAdminLoader, createAdminAction, createAdminComponent) instead.

AdminConfig

The admin configuration including DB factory, auth adapter, and schema.

object

An object with loader, action, and Component to mount on a React Router route.

action: (request) => Promise<Response | AdminActionResult>

Request

Promise<Response | AdminActionResult>

Component: () => ReactElement

ReactElement

loader: (request) => Promise<AdminLoaderData>

Request

Promise<AdminLoaderData>

app/routes/admin.tsx
import { createAdmin } from "@cfast/admin";
import * as schema from "~/schema";
const admin = createAdmin({
db: (grants, user) => createDb({ d1: env.DB, schema, grants, user }),
auth,
schema,
requiredRole: "admin",
});
export const loader = admin.loader;
export const action = admin.action;
export default admin.Component;