Refine.dev Framework
Refine is a headless React framework for building enterprise CRUD applications. It provides data fetching, routing, authentication, and access control out of the box while remaining UI-agnostic.
Core Concepts
Refine is built around these key abstractions:
- Data Provider — adapter for your backend (REST, GraphQL, etc.)
- Resources — entities in your app (e.g.,
posts, users, products)
- Hooks —
useList, useOne, useCreate, useUpdate, useDelete, useForm, useTable
- Auth Provider — handles login, logout, permissions
- Router Provider — integrates with React Router, etc.
Quick Start (Vite)
Scaffold: npm create refine-app@latest (select Vite, Mantine, REST API). For manual setup, install @refinedev/core @refinedev/mantine @refinedev/react-router and Mantine packages.
Minimal App Structure
// src/App.tsx
import { Refine } from "@refinedev/core";
import { MantineProvider } from "@mantine/core";
import routerProvider from "@refinedev/react-router";
import dataProvider from "@refinedev/simple-rest";
import { BrowserRouter, Routes, Route } from "react-router-dom";
function App() {
return (
<BrowserRouter>
<MantineProvider>
<Refine
dataProvider={dataProvider("https://api.example.com")}
routerProvider={routerProvider}
resources={[
{
name: "posts",
list: "/posts",
create: "/posts/create",
edit: "/posts/edit/:id",
show: "/posts/show/:id",
},
]}
>
<Routes>{/* Your routes here */}</Routes>
</Refine>
</MantineProvider>
</BrowserRouter>
);
}
Critical Prohibitions
- Do NOT mix multiple UI libraries (pick Mantine and stick with it)
- Do NOT bypass data provider — always use Refine hooks for data operations
- Do NOT hardcode API URLs — use data provider configuration
- Do NOT skip resource definition — all CRUD entities must be declared in
resources
- Do NOT ignore TypeScript types — Refine is fully typed, leverage it
Steps for New Feature
- Define the resource in
<Refine resources={[...]}>
- Create page components (List, Create, Edit, Show)
- Set up routes matching resource paths
- Use appropriate hooks (
useTable for lists, useForm for create/edit)
- Configure auth provider if authentication is needed
Definition of Done
References (Detailed Guides)
Core
- data-providers.md — Data provider interface, available providers, custom implementation
- resources.md — Resource definition and configuration
- routing.md — React Router integration and route patterns
Hooks
- hooks.md — All hooks: useList, useOne, useCreate, useUpdate, useDelete, useForm, useTable, useSelect
Security & Auth
- auth.md — Auth provider, access control, RBAC/ABAC, Casbin/CASL integration
UI & Components
- mantine-ui.md — Mantine components integration
- inferencer.md — Auto-generate CRUD pages from API schema
Utilities & Features
- notifications.md — Notification provider and useNotification hook
- i18n.md — Internationalization with i18nProvider
- realtime.md — LiveProvider for websocket/realtime subscriptions
Links
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: itechmeat-llm-code-refine-dev3description: Refine.dev Framework4---56# Refine.dev Framework78Refine is a headless React framework for building enterprise CRUD applications. It provides data fetching, routing, authentication, and access control out of the box while remaining UI-agnostic.910## Core Concepts1112Refine is built around these key abstractions:13141. **Data Provider** — adapter for your backend (REST, GraphQL, etc.)152. **Resources** — entities in your app (e.g., `posts`, `users`, `products`)163. **Hooks** — `useList`, `useOne`, `useCreate`, `useUpdate`, `useDelete`, `useForm`, `useTable`174. **Auth Provider** — handles login, logout, permissions185. **Router Provider** — integrates with React Router, etc.1920## Quick Start (Vite)2122Scaffold: `npm create refine-app@latest` (select Vite, Mantine, REST API). For manual setup, install `@refinedev/core @refinedev/mantine @refinedev/react-router` and Mantine packages.2324## Minimal App Structure2526```tsx27// src/App.tsx28import { Refine } from "@refinedev/core";29import { MantineProvider } from "@mantine/core";30import routerProvider from "@refinedev/react-router";31import dataProvider from "@refinedev/simple-rest";32import { BrowserRouter, Routes, Route } from "react-router-dom";3334function App() {35 return (36 <BrowserRouter>37 <MantineProvider>38 <Refine39 dataProvider={dataProvider("https://api.example.com")}40 routerProvider={routerProvider}41 resources={[42 {43 name: "posts",44 list: "/posts",45 create: "/posts/create",46 edit: "/posts/edit/:id",47 show: "/posts/show/:id",48 },49 ]}50 >51 <Routes>{/* Your routes here */}</Routes>52 </Refine>53 </MantineProvider>54 </BrowserRouter>55 );56}57```5859## Critical Prohibitions6061- Do NOT mix multiple UI libraries (pick Mantine and stick with it)62- Do NOT bypass data provider — always use Refine hooks for data operations63- Do NOT hardcode API URLs — use data provider configuration64- Do NOT skip resource definition — all CRUD entities must be declared in `resources`65- Do NOT ignore TypeScript types — Refine is fully typed, leverage it6667## Steps for New Feature68691. Define the resource in `<Refine resources={[...]}>`702. Create page components (List, Create, Edit, Show)713. Set up routes matching resource paths724. Use appropriate hooks (`useTable` for lists, `useForm` for create/edit)735. Configure auth provider if authentication is needed7475## Definition of Done7677- [ ] Resource defined in Refine configuration78- [ ] All CRUD pages implemented with proper hooks79- [ ] Routes match resource configuration80- [ ] TypeScript types for resource data defined81- [ ] Error handling in place82- [ ] Loading states handled8384## References (Detailed Guides)8586### Core8788- [data-providers.md](references/data-providers.md) — Data provider interface, available providers, custom implementation89- [resources.md](references/resources.md) — Resource definition and configuration90- [routing.md](references/routing.md) — React Router integration and route patterns9192### Hooks9394- [hooks.md](references/hooks.md) — All hooks: useList, useOne, useCreate, useUpdate, useDelete, useForm, useTable, useSelect9596### Security & Auth9798- [auth.md](references/auth.md) — Auth provider, access control, RBAC/ABAC, Casbin/CASL integration99100### UI & Components101102- [mantine-ui.md](references/mantine-ui.md) — Mantine components integration103- [inferencer.md](references/inferencer.md) — Auto-generate CRUD pages from API schema104105### Utilities & Features106107- [notifications.md](references/notifications.md) — Notification provider and useNotification hook108- [i18n.md](references/i18n.md) — Internationalization with i18nProvider109- [realtime.md](references/realtime.md) — LiveProvider for websocket/realtime subscriptions110111## Links112113- [Documentation](https://refine.dev/docs/)114- [Releases](https://github.com/refinedev/refine/releases)115- [GitHub](https://github.com/refinedev/refine)116- [npm](https://www.npmjs.com/package/@refinedev/core)117118---119> Converted and distributed by [TomeVault](https://tomevault.io/claim/itechmeat) — claim your Tome and manage your conversions.120<!-- tomevault:4.0:skill_md:2026-04-11 -->