fastapi-react-admin
FASTAPI + REACT 19 · MIT
An admin foundation that locks together like joinery.
Open source, on FastAPI + React 19 + shadcn/ui. Permissions down to the rows a user sees, tabs that keep their state, an approval workflow and an AI assistant that can't overreach — on PostgreSQL, SQL Server or MySQL.
- Row-level data permissions
- Tabs that keep their state
- Native SQL Server

Live demo account admin / 123456 — a public instance: other visitors can change or wipe its data, so don’t store anything real there.
- backend tests against a real database and Redis
- 1,400+
- Playwright tests driving the real API
- 150+
- databases on one codebase and one migration chain
- 3
- licensed, fork it and build on it
- MIT
WHAT'S IN THE BOX
The parts every internal system ends up needing
Users, roles and departments are the easy part. These are the pieces that usually get rebuilt from scratch.
Row-level data permissions
Beyond menus and buttons, a role decides which rows a user sees. A department manager opening the user list only gets their own department.
Tabs that keep their state
Built on React 19’s <Activity>: a half-filled form, the page you were on and an expanded tree are still there when you switch back. Filters live in the URL, so a refresh keeps them too.
Approval workflow
Form designer and flow tree with or-sign / co-sign, send back, transfer, take back, add approvers and timeouts.
An AI assistant that can't overreach
Tool calls run as the signed-in user, inside their permissions and data scopes. Writes are previewed and run only after the user confirms; every call is audited.
Large files, handled
Local disk or S3-compatible storage, instant upload by hash, parallel chunks and resume after a page refresh.
Pick your database
PostgreSQL, SQL Server or MySQL with the same code and the same migration chain.
SEE IT
Screens from the latest version
Taken from main on a local install. Every screen ships in Chinese and English, light and dark.





Running locally in five commands
docker compose -f docker-compose.dev.yml up -d # PostgreSQL + Redispnpm install:allcp apps/api/backend/.env.example apps/api/backend/.envpnpm db:init # tables + seed datapnpm dev # open http://localhost:8888MIT licensed. The backend started as a fork of fastapi-best-architecture; its three-layer structure, plugin system and RBAC model come from that project.