finds.dev← search

// the find

refinedev/refine

★ 34,860 · TypeScript · MIT · updated Jun 2026

A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility.

Refine is a React meta-framework specifically targeting CRUD-heavy enterprise apps: admin panels, internal tools, dashboards. It sits between rolling your own and a fully generated low-code tool by providing headless hooks for data fetching, auth, access control, and routing, with optional UI layer integrations for Ant Design, MUI, Mantine, and Chakra UI.

- Genuinely headless architecture: business logic lives in hooks (@refinedev/core) decoupled from UI, so you can swap out Ant Design for Tailwind without rewriting data or auth logic

- Broad data provider ecosystem with 15+ official connectors (Supabase, Strapi, Hasura, NestJS CRUD, GraphQL, etc.) that all conform to the same interface, so switching backends doesn't require rewriting list/form components

- Extensive E2E test coverage with Cypress across every supported UI framework and data provider combo — this is the kind of thing most open-source frameworks skip and it actually matters when you're picking a foundation for internal tooling

- Monorepo is well-structured with proper changesets, conventional commits, and NX — contributing or forking a specific package is straightforward without pulling in the whole thing

- The abstraction layers stack up quickly: Refine context → data provider → router provider → auth provider → UI package. Debugging something subtle like a redirect loop after login means tracing through 4 different provider chains, and the error messages rarely tell you which layer is misbehaving

- Access control (usePermissions / accessControlProvider) is too coarse for real enterprise RBAC — field-level permissions and dynamic resource-based rules require you to build essentially everything yourself on top of a thin interface

- The 'inferencer' feature that auto-generates CRUD UIs from API responses sounds compelling but outputs code you'd be embarrassed to ship; it's useful for prototyping but the generated code has enough edge-case issues that you'll rewrite it anyway

- Heavy dependency on React Query internals means upgrading React Query is often blocked until Refine releases a compatible version, and the repo has a history of this creating multi-month lag on major RQ releases

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →