Refine — React Framework for Building Internal Tools
Refine is an open-source React framework for building admin panels, dashboards, and internal tools. It provides data hooks, auth, access control, routing, and notifications — with full code ownership and no vendor lock-in, unlike visual builders.
Instalación lista para agent
Este activo puede instalarse después de elegir el runtime, revisar el plan y ejecutar el comando correspondiente.
npx -y tokrepo@latest install eb077501-371c-11f1-9bc6-00163e2b0d79 --target codexEjecutar después de confirmar el plan con dry-run.
What it is
Refine is an open-source React framework purpose-built for admin panels, dashboards, and internal tools. It ships data-fetching hooks, authentication, access control, routing, and notification primitives so teams can focus on business logic rather than boilerplate.
Unlike visual builders such as Retool or Appsmith, Refine gives you full code ownership. You write standard React components, use any UI library (Ant Design, Material UI, Chakra, Mantine, or headless), and deploy wherever you want.
How it saves time or tokens
Refine eliminates the repetitive CRUD scaffolding that plagues every internal tool project. Its useTable, useForm, useShow, and useList hooks handle pagination, sorting, filtering, and mutations in a few lines. A data provider abstraction means switching from REST to GraphQL or Supabase requires changing one file, not rewriting every component.
Because Refine generates standard React code, AI coding assistants can read and modify it without learning a proprietary DSL. That reduces token spend when using LLMs for code generation.
How to use
- Scaffold a new project with the CLI:
npm create refine-app@latest my-admin
cd my-admin
npm run dev
- Define a data provider that connects to your API. Refine ships providers for REST, GraphQL, Supabase, Strapi, Appwrite, NestJS, Hasura, and Airtable out of the box.
- Create a resource page using built-in hooks. A typical list page looks like this:
import { useTable } from '@refinedev/antd';
import { Table } from 'antd';
export const ProductList = () => {
const { tableProps } = useTable({ resource: 'products' });
return (
<Table {...tableProps} rowKey='id'>
<Table.Column dataIndex='name' title='Name' />
<Table.Column dataIndex='price' title='Price' />
</Table>
);
};
- Register the resource in your app config and Refine auto-generates sidebar navigation, breadcrumbs, and CRUD routes.
Example
import { Refine } from '@refinedev/core';
import dataProvider from '@refinedev/simple-rest';
import { ProductList } from './pages/products';
function App() {
return (
<Refine
dataProvider={dataProvider('https://api.example.com')}
resources={[
{ name: 'products', list: ProductList }
]}
/>
);
}
This minimal setup gives you a working admin panel with list, create, edit, and delete pages for the products resource.
Related on TokRepo
- Automation Tools — Other tools that speed up internal tooling workflows
- AI Tools for Coding — AI-assisted development tools that pair well with Refine projects
Common pitfalls
- Choosing a UI library before understanding Refine's headless mode. Start headless if your design system is custom; pick Ant Design or Material UI only if you want pre-built components.
- Skipping the inferencer. Refine's
@refinedev/inferencerpackage auto-generates CRUD pages from your API response, saving hours of initial scaffolding. - Hardcoding API URLs instead of using the data provider abstraction. This defeats the main benefit of Refine and makes backend migrations painful.
Preguntas frecuentes
Retool and Appsmith are visual builders with proprietary runtimes. Refine is a code-first React framework. You get full source code ownership, can use any React library, and deploy to any hosting provider. The trade-off is that Refine requires React knowledge, while visual builders let non-developers build UIs.
Refine supports Ant Design, Material UI, Chakra UI, and Mantine through dedicated packages. It also has a headless mode where you bring your own components. Each UI package wraps Refine hooks with pre-styled form, table, and layout components.
Yes. Refine ships a GraphQL data provider that works with any spec-compliant GraphQL server. It also supports Hasura and Strapi GraphQL endpoints through dedicated providers. Switching from REST to GraphQL requires changing the data provider import, not rewriting components.
Yes. Refine is used in production by teams building internal dashboards, CRM systems, and admin panels. It supports authentication via Auth0, Keycloak, or custom providers, role-based access control, audit logging, and real-time updates via WebSocket or Supabase subscriptions.
Refine provides an auth provider interface with login, logout, check, and getPermissions methods. You implement these methods for your auth backend. Built-in integrations exist for Auth0, Google, Keycloak, and Supabase auth. Access control uses a can method that receives resource and action, returning allow or deny.
Referencias (3)
- Refine GitHub— Refine provides data hooks, auth, access control, routing, and notifications for…
- Refine Documentation— Data providers for REST, GraphQL, Supabase, Strapi, Appwrite, NestJS, Hasura, Ai…
- React Official Docs— React framework design patterns for admin panels
Relacionados en TokRepo
Discusión
Activos relacionados
React Admin — Frontend Framework for Admin Panels on REST and GraphQL
React Admin is an open-source frontend framework for building admin interfaces and internal tools on top of REST or GraphQL APIs using React and Material Design components.
Gatsby — React-Based Framework for Performant Static Sites
Gatsby is a React-based open-source framework for building fast, secure websites and apps. It combines static site generation with dynamic capabilities, pulling data from any source via GraphQL.
Next.js — The Full-Stack React Framework for the Web
Next.js is the most popular React framework for building full-stack web applications. It provides server-side rendering, static generation, API routes, file-based routing, and React Server Components — making React production-ready out of the box.
React — The Library for Building User Interfaces
React is the most popular JavaScript library for building user interfaces. Created by Meta, it uses a component-based architecture with a virtual DOM, enabling developers to build fast, interactive web and native applications with declarative, reusable code.