Today we are celebrating the one-year anniversary of refine with this launch event. Last year was a landmark year for us since we watched refine grow from zero and establish itself as a prominent React framework. Thank you to all of our friends who have been with us on this amazing journey!
It all started with a single question two years ago: "Is it possible for a low-code web framework to quickly generate CRUD applications while still allowing custom styling, logic and workflow?". None of the existing solutions could give us the amount of flexibility that we needed, so we started building one from scratch.
Today refine evolved to a full-blown framework for building CRUD applications like admin panels, dashboards, internal tools and storefronts. It eliminates the repetitive tasks demanded by CRUD operations and saves days of development time.
Unique "Headless UI" approach enables developers to use any UI framework or custom design without constraints. For convenience, refine is shipped with ready-made integrations with three powerful UI frameworks: Ant Design, Material UI & Mantine.
Being totally backend agnostic, refine can connect to 15+ backend services out-of-the-box, incl. custom REST & GraphQL API's. With refine, developers have 100% control over their projects as they may build, style and deploy the way they like.
If you are new to refine, you may visit our website or GitHub page to get more information, start with examples or dive in to tutorials. If you have any questions, please ask them in the comments below. The team will be here all day to answer.
And of course, we want to know what you think about refine and any ideas or suggestions you may have for our solution. Please write them and we'll be happy to join the conversation.
Happy coding to everyone!
Here is the example for a text field. Is there a way to reduce this?
<TextField
{...register("title", { required: "Title is required" })}
error={!!errors?.title}
helperText={errors.title?.message}
margin="normal"
required
fullWidth
id="title"
label="Title"
name="title"
defaultValue={" "}
autoFocus
/>In the example, there are styling props (from material ui) and there are props required by react-hook-form to work. In the current way, we find it easier to adapt and use.
We don't want to introduce a "compact" way to handle form inputs which may look smaller but harder to maintain and also introduces a new API to learn.
Still, we're trying our best to reduce boilerplate codes and there's always a room for improvement
What I didn't like about react-admin was that they became an "open-core" commercial project. After that happened it seemed like more effort was spent on the premium version, and features in the core became a much lower priority or moved out of the core.
Looks like this is advertised to be much more open and flexible, and no sign of a "pricing page" which is refreshing
Seems highly interesting, are you guys hiring by any chance omer?
Will be using for our family business to start running our ecommerce platform finally, all FOSS
Also we built our Swag Store using Next.js and Medusa. It's fully open sourced. Here is the source code: https://github.com/refinedev/refine/tree/master/examples/sto...
state management is so much easier than react-admin (redux). refine use react-query for state management. so many features out-of-the-box (pooling, initial data, cache management, etc...).
refine makes extensive use of hooks as a default way for interacting with your components. React admin has hooks too but heavily uses components.
Lastly, react-admin has always been an inspiration for us. a great tool but now we think it will change