Browse documentation

Why flowpanel

A typed admin panel that lives inside your Next.js codebase, not a separate service.

Most admin tools force you to choose between two bad options: build the whole thing yourself, or run a SaaS in a separate browser tab. flowpanel is the middle path — a typed dashboard that lives at /admin in your Next.js app, built from one config file.

The premises

Your schema is the contract. Adding a column to a Drizzle table or Prisma model should add a column to the admin. Renaming a field should be a type-error in the config, not a silent visual bug. flowpanel infers the row type from your resource(ref, ...) ref — $inferSelect on Drizzle tables, the augmented model map on Prisma — so the admin stays type-checked against the source of truth.

Config first, source last. Most resources need a typed CRUD UI with filters, sort, and pagination. Some need a custom column renderer. A few need a fully custom drawer. flowpanel ships three customization layers — config props, theme slots, and eject — so you reach for the heaviest tool only when the lighter ones won't do.

Self-hostable, MIT. No platform lock-in. The admin runs in your existing Next.js process. You can self-host it, eject it, or remove it without rewriting the rest of your app.

What flowpanel is not

  • Not a no-code platform. flowpanel produces typed React code; you read and modify TypeScript, not JSON in a UI builder.
  • Not a CMS. It doesn't model your content schema for you — it introspects the schema you already have.
  • Not a replacement for prod tooling. Use Datadog, Sentry, Better Stack for ops. flowpanel is for the team's everyday CRUD surface.