
Template details
fastapi-react-admin
Batteries-included admin foundation on FastAPI + React 19 with row-level permissions, approvals, AI assistant, and S3 uploads.
About this template
fastapi-react-admin is a batteries-included admin foundation built on FastAPI and React 19 with shadcn/ui, packaged as a pnpm + turbo monorepo that serves a web admin console, an Electron desktop template, a native Expo mobile template, and an Astro docs site from one repository. It distills the login, permissions, org structure, approval, file, and notification scaffolding that gets rebuilt for every new internal system so the next project can start with business logic instead.
What is fastapi-react-admin?
fastapi-react-admin is an MIT-licensed admin starter that pairs a FastAPI backend (async SQLAlchemy 2, Alembic, Redis, Celery, Socket.IO) with a React 19 admin console. A single pnpm dev command starts backend and frontend together after pnpm db:init creates tables and seed data. The project began as a rewrite of several small Java + Vue 2 systems at work, and the backend's three-layer structure, plugin system, and RBAC/data-scope model derive from the open-source fastapi-best-architecture project.
What makes fastapi-react-admin stand out?
- Row-level data permissions — beyond menus and buttons, data scopes decide which rows a user sees; on the same user table a department manager only sees their own department, rules live on model columns, and the UI warns when a rule is misconfigured.
- Multi-tab state retention — built on React 19
<Activity>, so open tabs stay mounted and a half-filled form or expanded tree survives switching; view state lives in the URL so a refresh keeps it too. - Approval workflow out of the box — a Feishu-style form designer and flow tree with or-sign/co-sign, send back, add approvers, take back, and timeouts.
- Permission-bound AI assistant — a full-page chat and side drawer whose tool calls are bounded by the signed-in user's permissions and data scopes; writes are previewed and confirmed, every call is audited, and an MCP gateway exposes the same tools.
- Large file handling — local disk or S3-compatible storage with instant upload by hash, parallel chunks, resume after refresh, pre-signed downloads, and a recycle bin.
- Three databases — switch with
DATABASE_TYPEbetween PostgreSQL (default), SQL Server, and MySQL, same code and migration chain. - Tested against real dependencies — 1,400+ backend pytest tests and 150+ Playwright browser tests run with no mocks; CI runs the full backend suite on both PostgreSQL and SQL Server, and the E2E report is public.
- Stack — React 19, TypeScript 6, Vite 8, TanStack Router/Query/Table v9, Tailwind CSS 4, shadcn/ui on Base UI, zustand, Tiptap 3, i18next on the frontend; FastAPI, Pydantic 2, Celery, Apache OpenDAL, and pydantic-ai on the backend.
What can you do with fastapi-react-admin?
- Internal tool builders: skip rebuilding login, RBAC, department trees, and approvals, and write the business module directly on top of the seeded base.
- Teams replacing legacy admin systems: migrate an aging Java or Vue 2 console onto FastAPI + React 19 with the same data-scope and approval semantics, using the documented upgrade path from v0.0.1.
- API integrators: expose AK/SK-signed Open API endpoints with scopes, IP allow-lists, replay protection, rate limits, call logs, and webhook subscriptions, using the Python, Node, or Java SDKs.
- Desktop and mobile delivery: package the web console as an Electron app with silent printing, local hardware access, and auto-update, or ship the native Expo app for approvals, notices, and notifications on a phone.
How does fastapi-react-admin work?
You need Node 22.13 or later, Python 3.11 or later, uv, and Docker. Start PostgreSQL and Redis with docker compose -f docker-compose.dev.yml up -d, run pnpm install:all, copy the backend .env.example to .env, run pnpm db:init to create tables and seed data, then run pnpm dev and open http://127.0.0.1:8888. A public live demo signs in as admin with password 123456 on a shared instance where data may be changed or wiped.
Who should use fastapi-react-admin?
- Full-stack developers starting an internal admin system who want permissions, org structure, approvals, and file storage already working.
- Python backend teams that want a typed OpenAPI contract generating the frontend's request types, plus per-directory
CLAUDE.md/AGENTS.mdnotes for AI coding assistants. - Teams needing an approval engine — HR, finance, or operations flows — who want a form designer and flow tree rather than building one.
- Developers shipping to desktop or mobile who need Electron installers for three platforms or a native Expo app sharing types and translations with the web console.
What are the limitations?
The mobile Expo app covers only phone-appropriate tasks — home, approvals, notices, notifications, users, profile, monitoring, and sign-in — while roles, departments, menus, files, and logs stay web-only. It has no automated tests yet, most screens have only run on an emulator, and there is no release pipeline. MySQL is not in CI (last local full run passed in full, including an upgrade from v0.0.1), and the web client is still migrating to generated API types, so its call sites currently declare response types by hand.
Pricing
fastapi-react-admin is released under the MIT license and is free to use and modify.
















