Introduction
React-Admin is an open-source framework for building admin and B2B applications on top of REST or GraphQL APIs. It provides a rich set of hooks and components that handle data fetching, form validation, routing, and access control out of the box. The project is maintained by Marmelab and has been actively developed since 2016.
What React-Admin Does
- Generates full CRUD interfaces from a declarative resource configuration
- Connects to any REST or GraphQL backend through pluggable data providers
- Includes 150+ material-design components (DataGrid, Calendar, Tree, etc.)
- Handles authentication, permissions, and role-based access control
- Supports internationalization with pluggable translation providers
Architecture Overview
React-Admin sits on top of React and React Router, wrapping your API behind a data-provider abstraction layer. Every CRUD action (getList, getOne, create, update, delete) goes through this layer, so switching backends only requires swapping the data provider. The UI layer uses Material UI components by default, but is fully customizable. State management relies on React Query for server state and React context for app-level settings.
Self-Hosting & Configuration
- Install via npm or yarn; no backend is bundled—bring your own API
- Configure the data provider to match your API dialect (REST, GraphQL, Supabase, Firebase, etc.)
- Customize the theme by passing a Material UI theme object to the Admin component
- Add authentication by implementing an authProvider with login, logout, and checkAuth methods
- Deploy as a static SPA to any CDN, S3 bucket, or static host
Key Features
- Works with 50+ community data providers (Supabase, Hasura, Strapi, Django, Laravel, etc.)
- Built-in rich text editor, file upload, and reference input components
- Real-time updates via server-sent events or polling
- Fully accessible components following WAI-ARIA guidelines
- Enterprise edition adds audit log, calendar view, and RBAC modules
Comparison with Similar Tools
- Refine — also React-based but more headless; React-Admin ships more built-in UI
- AdminJS — Node.js-centric with auto-generated panels; React-Admin is frontend-only and API-agnostic
- Retool / Appsmith — low-code platforms with drag-and-drop; React-Admin is code-first with full control
- Django Admin — tightly coupled to Django ORM; React-Admin is framework-agnostic
FAQ
Q: Does React-Admin lock me into Material UI? A: No. You can replace every component. Community packages provide Ant Design and Chakra UI adapters.
Q: Can I use React-Admin with a GraphQL API? A: Yes. Official data providers exist for generic GraphQL, Hasura, and AWS AppSync.
Q: Is React-Admin free? A: The core framework is MIT-licensed. An Enterprise Edition with extra modules is available under a commercial license.
Q: How large is the bundle? A: A minimal React-Admin app adds roughly 120 KB gzipped on top of React and Material UI.