About this project
React-admin is a frontend framework maintained by marmelab for building single-page applications that run in the browser on top of REST or GraphQL APIs. It is written in TypeScript and built on React and Material Design, and it is distributed on npm as react-admin.
Backend agnosticism: the framework talks to APIs through adapters called Data Providers. The README links a Data Provider list documenting more than 45 adapters, and explains that existing providers can serve as a blueprint for an API or that a custom Data Provider can be written to query an existing API.
Building blocks: the project describes providing hooks and components covering authentication, routing, forms and validation, datagrids, search and filtering, relationships, roles and permissions, a rich text editor, i18n, notifications, menus, theming and caching. It also lists qualities such as accessibility, responsiveness, security, speed and testability, and user-experience features such as optimistic rendering, filter-as-you-type, undo, preferences and saved queries.
Customization: react-admin is presented as a library of loosely coupled React components and hooks exposing reusable controller logic, so that any part can be replaced with your own, for example a custom datagrid, GraphQL instead of REST, or a different design system instead of Material Design. TypeScript is described as opt-in, so development can be done in TypeScript or JavaScript. The README notes that the framework is powered by Material UI, react-hook-form, react-router, react-query and TypeScript, among others.
Getting started: installation is done with npm install react-admin or yarn add react-admin. Documentation includes a tutorial, YouTube video tutorials and a complete API reference. The repository contains example applications: a simple blog with posts, comments and users used for end-to-end tests; an e-commerce poster shop admin that is the official demo; a CRM application; a helpdesk ticketing application with realtime locks and notifications; and the application built while following the tutorial. The README states that these examples work without a server because the API is simulated on the client side.
A minimal usage sample shows an Admin component wrapping Resource components that declare list, edit and create pages for an API endpoint, with page components built from List, DataTable, Edit, Create, SimpleForm, DateField, EditButton and input components.
Development: the monorepo uses a makefile with commands such as make install, make build, make run-simple, make run-demo, make test and make prettier. Unit tests use jest, end-to-end tests use cypress, and a git pre-commit hook runs tests related to modified files. Contributions are expected to follow the existing prettier-based coding style and to include unit tests and documentation. Bugfix pull requests target the master branch, while new features and breaking changes target next.
Support and license: community support is offered via Discord and StackOverflow, and commercial support is offered through a React-Admin Enterprise Edition. React-admin is licensed under the MIT License and is free to use, including for commercial purposes.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.