DEV Community

Omer Aplak for Refine

Posted on • Edited on

Build your next admin panel in 5 minutes!

refine - react framework admin panel

[GitHub](https://github.com/pankod/refine) | [Tutorial](https://refine.dev/docs) | [Demo](https://example.refine.dev)

What is refine?

refine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to admin panels, B2B applications and dashboards.

Your API is supported, out of the box! Connects to any REST or GraphQL custom backend.

Built-in support for
NestJs CRUD, Airtable, Strapi, Strapi GraphQL, Supabase, and Altogic.

Motivation

Higher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.

After many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how refine is born.

refine is a collection of helper hooks, components and providers. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.

As refine is totally unopinionated about UI and logic, it's strongly opinionated about three parts of your application:

  1. API Networking
  2. State Management
  3. Authentication & Authorization

We believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.

refine guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.

Architechture

refine makes extensive use of hooks as a default way for interacting with your components.
Under the hood, refine relies heavily to React Query for data handling, caching and state management.
Access to external sources and API's happen via providers which are basically plug-in type components for extendibility.

Key features

⚙️ Zero-configuration: One-line setup with superplate. It takes less than a minute to start a project.

📦 Out-of-the-box : Routing, networking, authentication, state management, i18n and UI.

🔌 Backend Agnostic : Connects to any custom backend. Built-in support for REST API, GraphQL, NestJs CRUD, Airtable, Strapi, Strapi GraphQL, Supabase and Altogic.

📝 Native Typescript Core : You can always opt out for plain Javascript.

🔘 Decoupled UI : UI components are exposed directly without encapsulation. You have full control on UI elements.

🐜 Powerful Default UI : Works seamlessly with integrated Ant Design System. (Support for multiple UI frameworks is on the Roadmap)

📝 Boilerplate-free Code : Keeps your codebase clean and readable.

Links

GitHub | Tutorial | Demo

Top comments (4)

Collapse
 
narayanpromax profile image
Narayan

In Decoupled UI how will you render lets say Table? Asking as i'm using tailwindui which is a custom layer over tailwindcss

Collapse
 
omeraplak profile image
Omer Aplak • Edited

You can provide this via hooks (useList, useTable, etc...), but it is installed with Refine Ant Design dependency. In Q1 2022 we will make headless.
Public Roadmap: github.com/pankod/refine/projects/1

Collapse
 
narayanpromax profile image
Narayan

What is the right place to ask a few questions? We make quite complex admins. We had chosen React Admin but it felt short on certain things so had to make custom admin but code is bloated due to not using hooks. It would be great if a call can be arranged like a Community Call to decide Roadmap and know problems users are facing

Thread Thread
 
omeraplak profile image
Omer Aplak

You can join Refine Discord Server. We will be happy to assist you. discord.gg/UuU3XCc3J5