Refine is a free, open source server & vm management project written in TypeScript and released under MIT. It has 35,688 GitHub stars, 3,214 forks and 43 open issues, and was last pushed 7 days ago. On this registry it ranks #5 of 10 tracked projects in Server & VM Management, and is listed as an open source replacement for 1 paid product, with 5 head-to-head comparisons available. It gained 23 stars over the last 6 tracked days.

Refine — Build data-rich React apps with ease and flexibility

What is Refine?

What it is

Refine is an open-source React meta-framework for building CRUD-heavy internal tools, admin panels, dashboards, and B2B applications. It operates in the React ecosystem and targets developers who need structured, scalable frontends without the constraints of low-code platforms or the overhead of building everything from scratch.

It solves the problem of repetitive boilerplate in enterprise-grade React apps by providing prebuilt solutions for authentication, access control, routing, networking, state management, and internationalization. Its headless architecture separates business logic from UI and routing layers, enabling full customization while reducing time-to-market.

Key capabilities

  • Provides headless core hooks and components for authentication, access control, routing, networking, state management, and i18n
  • Supports multiple UI frameworks out of the box: Ant Design, Material UI, Mantine, Chakra UI, and custom designs like TailwindCSS
  • Works with multiple platforms via routing abstraction: Next.js, Remix, React Native, Electron
  • Includes built-in data provider integrations for REST, GraphQL, NestJS, Strapi, Hasura, and more
  • Offers CLI scaffolding (npm create refine-app@latest) and browser-based project creation
  • Supports AI-assisted project generation via its purpose-built AI agent
  • Includes production-ready patterns for data grids, forms, filters, and CRUD pages

Who uses it and how

  • Internal teams build admin panels for business-critical systems using prebuilt CRUD patterns and role-based access control
  • SaaS companies develop B2B dashboards with customizable UIs and multi-tenancy-ready architecture
  • Agencies and startups rapidly prototype internal tools without committing to proprietary low-code platforms
  • Enterprises integrate Refine with existing backend services using custom data providers and auth strategies

Getting started

Install via npm create refine-app@latest to scaffold a new project; alternatively, use the browser-based starter or AI agent. Projects run with standard React tooling and support TypeScript by default.

When to use it — and when not to

Refine replaces Retool and similar low-code tools where full control over UI and logic is required, but it demands more engineering effort than visual builders. Users must operate their own authentication backend, database, and hosting infrastructure; Refine provides only the frontend framework. It is unsuitable for marketing sites or content-heavy apps with minimal data interaction, as its value lies in structured, CRUD-intensive workflows.

project readme (upstream, from github) — read inline
refine logo

Home Page | Documentation | Examples | Discord | Blog | Refine



The sweet spot between the low/no code and “starting from scratch” for CRUD-heavy applications.

Refine Core is an open source, React meta-framework for enterprise. It provides a headless solution for everything from admin panels to dashboards and internal tools.

Refine CORE also powers Refine's purpose built AI agent.

Awesome OpenSSF Best Practices npm version Contributor Covenant

Discord Twitter Follow


how-refine-works

What is Refine CORE?

Refine CORE is a React meta-framework for CRUD-heavy web applications. It addresses a wide range of enterprise use cases including internal tools, admin panels, dashboards and B2B apps.

Refine CORE's hooks and components streamline the development process by offering industry-standard solutions for crucial aspects of a project, including authentication, access control, routing, networking, state management, and i18n.

Refine CORE's headless architecture enables the building of highly customizable applications by decoupling business logic from UI and routing. This allows integration with:

  • Any custom designs or UI frameworks like TailwindCSS, along with built-in support for Ant Design, Material UI, Mantine, and Chakra UI.

  • Various platforms, including Next.js, Remix, React Native, Electron, etc., by a simple routing interface without the need for additional setup steps.

⚡ Try Refine CORE

Start a new project with Refine CORE in seconds using the following command:

npm create refine-app@latest my-refine-app

Or you can create a new project on your browser:


You can also try Refine's AI agent for free to create projects:

Quick Start

Here's Refine CORE in action, the below code is an example of a simple CRUD application using Refine CORE + React Router + Material UI:

import React from "react";
import { Refine, useMany } from "@refinedev/core";
import { ThemedLayout } from "@refinedev/mui";
import dataProvider from "@refinedev/simple-rest";
import routerProvider from "@refinedev/react-router";
import { BrowserRouter, Outlet, Route, Routes } from "react-router";

import CssBaseline from "@mui/material/CssBaseline";

export default function App() {
  return (
    <BrowserRouter>
      <CssBaseline />
      <Refine
        dataProvider={dataProvider("https://api.fake-rest.refine.dev")}
        routerProvider={routerProvider}
        resources={[
          {
            name: "products",
            list: "/products",
          },
        ]}
      >
        <Routes>
          <Route
            element={
              <ThemedLayout>
                <Outlet />
              </ThemedLayout>
            }
          >
            <Route path="/products">
              <Route index element={<ProductList />} />
            </Route>
          </Route>
        </Routes>
      </Refine>
    </BrowserRouter>
  );
}

// src/pages/products/list.tsx

import { List, useDataGrid, DateField } from "@refinedev/mui";
import { DataGrid, GridColDef } from "@mui/x-data-grid";

export const ProductList = () => {
  const { dataGridProps } = useDataGrid();

  const { data: categories, isLoading } = useMany({
    resource: "categories",
    ids:
      dataGridProps?.rows?.map((item) => item?.category?.id).filter(Boolean) ??
      [],
    queryOptions: {
      enabled: !!dataGridProps?.rows,
    },
  });

  const columns = React.useMemo<GridColDef[]>(
    () => [
      { field: "id", headerName: "ID", type: "number" },
      { field: "name", flex: 1, headerName: "Name" },
      {
        field: "category",
        flex: 1,
        headerName: "Category",
        display: "flex",
        renderCell: ({ value }) =>
          isLoading
            ? "Loading..."
            : categories?.data?.find((item) => item.id === value?.id)?.title,
      },
      {
        field: "createdAt",
        flex: 1,
        headerName: "Created at",
        display: "flex",
        renderCell: ({ value }) => <DateField value={value} />,
      },
    ],
    [categories?.data, isLoading],
  );

  return (
    <List>
      <DataGrid {...dataGridProps} columns={columns} />
    </List>
  );
};

The result will look like this:

Refine CORE + Material UI Example

Use cases

Refine CORE shines on data-intensive⚡ enterprise B2B applications like admin panels, dashboards and internal tools. Thanks to the built-in SSR support, it can also power customer-facing applications like storefronts.

You can take a look at some live examples that can be built using Refine CORE from scratch:

Key Features

  • Refine CORE Devtools - dive deeper into your app and provide useful insights
  • Connectors for 15+ backend services including REST API, GraphQL, NestJs CRUD, Airtable, Strapi, Strapi v4, Supabase, Hasura, Appwrite, Nestjs-Query, Firebase, Sanity, and Directus.
  • SSR support with Next.js & Remix and Advanced routing with any router library of your choice
  • Auto-generation of CRUD UIs based on your API data structure
  • Perfect state management & mutations with React Query
  • Providers for seamless authentication and access control flows
  • Out-of-the-box support for live / real-time applications
  • Easy audit logs & document versioning

Learning Refine CORE

readme truncated — read the full docs on github

Frequently asked questions

Is Refine free to use?

Refine is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Refine do?

Build data-rich React apps with ease and flexibility

What is Refine written in?

Refine is primarily written in TypeScript. Its source is publicly available at https://github.com/refinedev/refine, and it has 35,688 GitHub stars.

What is a good open source alternative to Retool?

Refine is one of the open source options listed as an alternative to Retool. Compare licences, stars and activity side by side on the Refine profile.