Skip to content

What is fastapi-react-admin?

fastapi-react-admin is an open-source (MIT) foundation for building admin and back-office systems: a FastAPI backend, a React 19 frontend on shadcn/ui, and the parts most internal systems end up needing — users, roles, departments, row-level data permissions, approvals, files, notifications, scheduled jobs and an AI assistant. You clone it and build your own business pages on top.

  • Teams building an internal system (OA, ERP-style back office, operations console) who want Python on the backend and React on the frontend.
  • Teams on the Microsoft stack: SQL Server is a first-class database here, tested in CI on every run alongside PostgreSQL.
  • Teams that need permissions finer than “which menus can this role open” — for example, a manager should only see their own department’s records.

How does it differ from a typical admin template?

Section titled “How does it differ from a typical admin template?”
Typical templatefastapi-react-admin
Permission granularitymenus + buttonsmenus + buttons + data scopes — the role decides which rows a user sees
Multi-tabfree with Vue’s keep-alive; most React templates don’t have it, or lose state when you switch awayReact 19 <Activity>: open tabs stay mounted, DOM and state survive switching
Component basemost are still on shadcn’s older Radix versionBase UI, shadcn’s current default (zero @radix-ui imports), plus a component sandbox to copy code from
Databaseusually onepick one of three: PostgreSQL (default) · SQL Server · MySQL
Business featuresusers / roles / menusplus approval workflow, AI assistant, open API, files & storage, messaging and scheduled jobs
Testsmostly none, or component unit tests with mocks1,400+ backend + 150+ end-to-end browser tests, against real dependencies, no mocks
FrontendReact 19 · TypeScript 6 · Vite 8 · TanStack Router / Query / Table v9 · Tailwind CSS 4 · shadcn/ui (Base UI) · zustand · Tiptap 3 · i18next
BackendFastAPI · Pydantic 2 · SQLAlchemy 2 (async) · Alembic · Redis · Celery · Socket.IO · Apache OpenDAL · pydantic-ai
DatabasesPostgreSQL · SQL Server · MySQL
ClientsElectron desktop app · Expo / React Native mobile app
Toolingpnpm + turbo monorepo · uv · ruff · pytest · Playwright · GitHub Actions
  • Not a low-code platform. You write business pages in React and endpoints in FastAPI; the foundation gives you the shell, the permission model and the shared building blocks.
  • Not a hosted service. You deploy it yourself — see Deployment.
  • Not 1.0 yet. It is released as 0.x versions; read the release notes before upgrading.

The backend started as a fork of fastapi-best-architecture (FBA). The three-layer structure (api → service → crud), the plugin system and the RBAC / data-scope model come from FBA’s design; FBA’s copyright notice is kept in apps/api/LICENSE. SQL Server support is what this project added — upstream declined to merge it, so the fork is permanent and only takes upstream security fixes.

The frontend, the desktop and mobile clients, and most business features (approvals, AI assistant, open API, file storage, notification routing) were written for this project.