Hello HN , here is Omer. I'm the Co-founder & CTO of refine.
Today we are celebrating the new features 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.
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 into 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.
With the new release, we add two new features to refine core
1- Inferencer
@pankod/refine-inferencer is a package that provides a way to automatically generate views for resources based on the data structure. The aim is to reduce the amount of time spent on creating views for resources by generating the code automatically that can be customized easily.
2- Swizzle
The swizzle is a command in refine-cli that allows you to customize the refine's supported components and data providers. It allows you to eject selected files from the refine packages and modify depending on your needs.
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.
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.
@pankod/refine-inferencer is an experimental package and it is now in the early stages of development. We are working on improving the package and adding new features.
Hi, Radu from Infinite Table here. Thanks for mentioning it - if you need any help with it, we're keen to give you a hand. You can reach out to us with a DM on twitter @get_infinite
1. We've released a codemod when releasing v3 and allowed users to upgrade easily from v2 to v3 and we're planning to do the same for v4 as well. https://refine.dev/docs/migration-guide/
You should just answer the question instead of pointing users to GitHub. The answer is no, they are not and they plan on selling features in the future.
Thank you for your warning and comment. I shared the link because I thought people could contribute to the discussion on GitHub. To avoid any misunderstandings, I want to clarify that Refine will always remain open source and will continue to be developed with the community. So we are adopting the "open core" model which is very popular and widely accepted in the open source ecosystem.
To reiterate, Refine will always remain open-source.
Over the last two weeks, I've been evaluating and trying out different headless CMSes, databases, and libraries like Refine to power my simple personal site.
I spent the most time with Refine and Supabase, and up until a few days ago, it seemed like Refine would be what I stayed with. I think what Refine offers out of the box is excellent. The ability to stand up a custom CRUD interface with low effort is really useful. I do appreciate what the Refine team is building.
However, when it came time to add customization or additional features, I spent more time stumbling through the docs than building what I wanted/needed.
A few days ago, I ripped refine out of my project for a custom-built interface using a component library called Mantine. Maybe it's because I've been building stuff like this for a long time, but I built exactly what I needed without Refine in less time than it took to get to the same spot with Refine.
The new swizzle command could have solved some of my issues, but I'm too far gone to go back.
Thank you very much for your time and feedback! Your experience with Refine is inspiring for us. Can you tell us exactly where we lost you? Was the learning curve too steep or were you unable to accomplish what you wanted to?
To be honest, we are working very hard to not let the experience you had to be felt by developers and it is clear that we need to work more.
Thank you for giving us the opportunity to improve ourselves.
Hi, react-admin core developer here. My opinion is that Refine is a copycat of react-admin with deceptive marketing practices and no soul.
- their API and code is a carbon copy of react-admin
- most features are half finished
- their benchmark is laughable if you look at the details
- they raised 1M$ and only sell mugs - watch out for the moment investor ask for they money back ("everything is free" isn't a good sign IMHO)
- they use the money to buy followers on social networks with contests
On the other hand, react-admin is mature (5+ years, ~4000 closed issues, huge unit test coverage and documentation), has passed breakeven point, and powers 3,000 new applications each month. It's published and supported by marmelab, a 10-year old company that has more than 70,000 stars across many projects on Github, and with very strong values (https://marmelab.com/en/values).
Hey,
Despite the fact that many your claims are baseless or unjustified, we appreciate your feedback and willingness to share your opinions with us. Any constructive criticism without unfair accusations is always very valuable to us.
Although its relatively recent emergence on the market, refine has quickly established itself as one of the fastest-growing frameworks, thanks to the support and enthusiasm of its great community. Having the invaluable support of prominent VC's and angel investors helps us to broaden our vision and set newer and higher goals we couldn't imagine before.
As it continues to grow and evolve, refine is becoming a one-stop solution for web application development, with the capability to handle an extensive range of use cases. Reaching this new level of success, vastly surpassing our origins as an admin panel creation tool, brings constant excitement to all of our stakeholders and serves as a source of motivation for us to develop innovative solutions for the industry.
refine is %100 open source. It provides all enterprise features of React Admin for free. Additionaly, refine has more features that React Admin enterprise doesn't have.
Looked a bit more in detail it seems a few features like below are comparably deficient vs React Admin Enterprise:
1. Relationships management (particularly many to many)
2. Persistence of preferences like sort and filters
3. No builtin UI components to display audit logs
PS: i am not associated with them in anyway. Just looking for versatility in tools in this space.
Also XavaPro (java specific and server generated pages design) is much more feature rich
In my opinion, trying to handle routing is the weakest point. However, we are working on this. With refine v4 , we'll remove the router dependecies and you will be able to easily integrate refine to your existing app.
For this use-case I've almost always relied on Rails + custom scaffold generators. There are a few projects like Bullet Train that offer some admin panel features out of the box as well.
Is this a way of bringing that functionality to all these other frameworks as well? It seems compelling because the ability to build out crud resources with a single command is a huge accelerator in Rails projects.
Are there any videos of someone building projects with this? It's useful to see what takes time an what doesn't before committing to a framework like this.
You probably heard the phrase "made by developers for developers", so I won't bore you to death with it, but that's the gist of it. I probably built 100 admin panels in the past and I know what I would need in one, so I built a lot of "escape hatches" into Avo so you can extend it and create your own thing.
The most important feature of refine is being headless by design.
No limit on customization, refine works with any custom design or UI framework you favor.
For convenience, it ships with ready-made integrations for Ant Design System, Material UI, Mantine, and Chakra UI.
Congratulations to the entire refine team on the launch of the new features! It's impressive to see how much the framework has grown and evolved since its inception. At the JavaScript Mastery team, we are looking forward to utilizing all of the benefits of refine in an upcoming video. Keep up the great work!
Thank you for your kind words and congratulations! We are thrilled to see the positive response to our new features and are proud of all the progress we've made since launching refine. We appreciate the interest from the JavaScript Mastery team and look forward to seeing how you utilize our framework in your upcoming video. We will continue to work hard to improve and enhance refine for our users.
I'm not too much into React but this seems like the kind of tools that can massively increase productivity. I can see open-source being a good source of both adoption and virtuousness as well. Very cool!
In a front-end project, being "headless" means that all functions can work without dependence on any user interface elements/components. With Refine, you can use features such as data management, authentication, real-time functionality, audit-logging, internationalization, and access control with any user interface element/component of your choice. This means that Refine does not restrict you in terms of styling and customization.
In this context, "server side" and "headless" refer to different things. "Server side rendering" (SSR) or "client side rendering" (CSR) refer to a method of rendering a website or application, while "headless" refers to the architecture of the application's business logic.
Here's a great example, no need for a custom-made refine and Map component document because with refine's headless approach, you can use Map components as you please.
Hello HN , here is Omer. I'm the Co-founder & CTO of refine.
Today we are celebrating the new features 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.
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 into 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.
With the new release, we add two new features to refine core
1- Inferencer @pankod/refine-inferencer is a package that provides a way to automatically generate views for resources based on the data structure. The aim is to reduce the amount of time spent on creating views for resources by generating the code automatically that can be customized easily.
2- Swizzle The swizzle is a command in refine-cli that allows you to customize the refine's supported components and data providers. It allows you to eject selected files from the refine packages and modify depending on your needs.
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.
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.
Thanks you very much. I love Refine ideas and the abstraction (Data Provider is cooool).
Would love to improve the examples though:
- Example code for backend Rest API to be used with Refine (i'm confused about specification on openapi request params/response)
- Example code on only using data provider package (for example, we don't need to use refine routing provider, auth provider,...)
Yes, this is definitely an area where we want to improve. Thank you for your feedback.
edit: By the way, what is your opinion on the "inferencer" package?
I've not used much the inference package. Let me check it first.
@pankod/refine-inferencer is an experimental package and it is now in the early stages of development. We are working on improving the package and adding new features.
Document: https://refine.dev/docs/packages/documentation/inferencer/
If you have any suggestions or feedback, please let us know in the GitHub Discussions
https://github.com/refinedev/refine/discussions/3046
I need one more crucial feature, it's row grouping with aggregation in table view.
If your table component can do that, fine for Refine. Which UI framework are you using?
If you can have example with this https://infinite-table.com/ , the grouping feature, that would be helpful !
I hadn't seen this package, I'll look into it, thanks. refine has native support for react-table. react-table supports grouping. Does it work for you?
https://refine.dev/docs/packages/documentation/react-table/
https://tanstack.com/table/v8/docs/examples/react/grouping
It's about row grouping, not column grouping.
Perhaps this is what you are looking for? https://tanstack.com/table/v8/docs/examples/react/expanding
Hi, Radu from Infinite Table here. Thanks for mentioning it - if you need any help with it, we're keen to give you a hand. You can reach out to us with a DM on twitter @get_infinite
It looks good. I checked how long this has been around. Two years seems longer than most react apps. Couple of questions:
1. How complex was the upgrade path between major versions?
2. Are you guys cashflow positive?
3. What are your competitors?
Thanks
Thank you so much.
1. We've released a codemod when releasing v3 and allowed users to upgrade easily from v2 to v3 and we're planning to do the same for v4 as well. https://refine.dev/docs/migration-guide/
2. We got a similar question before. You can check it out here: https://github.com/refinedev/refine/discussions/3261
3. We have detailed comparison table for similar tools: https://refine.dev/docs/comparison/
Have you ever tried similar tools for building a CRUD app before? Can you suggest any for us to take a look?
You should just answer the question instead of pointing users to GitHub. The answer is no, they are not and they plan on selling features in the future.
Thank you for your warning and comment. I shared the link because I thought people could contribute to the discussion on GitHub. To avoid any misunderstandings, I want to clarify that Refine will always remain open source and will continue to be developed with the community. So we are adopting the "open core" model which is very popular and widely accepted in the open source ecosystem.
To reiterate, Refine will always remain open-source.
Over the last two weeks, I've been evaluating and trying out different headless CMSes, databases, and libraries like Refine to power my simple personal site.
I spent the most time with Refine and Supabase, and up until a few days ago, it seemed like Refine would be what I stayed with. I think what Refine offers out of the box is excellent. The ability to stand up a custom CRUD interface with low effort is really useful. I do appreciate what the Refine team is building.
However, when it came time to add customization or additional features, I spent more time stumbling through the docs than building what I wanted/needed.
A few days ago, I ripped refine out of my project for a custom-built interface using a component library called Mantine. Maybe it's because I've been building stuff like this for a long time, but I built exactly what I needed without Refine in less time than it took to get to the same spot with Refine.
The new swizzle command could have solved some of my issues, but I'm too far gone to go back.
Thank you very much for your time and feedback! Your experience with Refine is inspiring for us. Can you tell us exactly where we lost you? Was the learning curve too steep or were you unable to accomplish what you wanted to?
To be honest, we are working very hard to not let the experience you had to be felt by developers and it is clear that we need to work more.
Thank you for giving us the opportunity to improve ourselves.
It would be good to know how this compares against React Admin Enterprise ( https://marmelab.com/ra-enterprise/ )
Hi, react-admin core developer here. My opinion is that Refine is a copycat of react-admin with deceptive marketing practices and no soul.
- their API and code is a carbon copy of react-admin
- most features are half finished
- their benchmark is laughable if you look at the details
- they raised 1M$ and only sell mugs - watch out for the moment investor ask for they money back ("everything is free" isn't a good sign IMHO)
- they use the money to buy followers on social networks with contests
On the other hand, react-admin is mature (5+ years, ~4000 closed issues, huge unit test coverage and documentation), has passed breakeven point, and powers 3,000 new applications each month. It's published and supported by marmelab, a 10-year old company that has more than 70,000 stars across many projects on Github, and with very strong values (https://marmelab.com/en/values).
Prefer the original ;)
Hey, Despite the fact that many your claims are baseless or unjustified, we appreciate your feedback and willingness to share your opinions with us. Any constructive criticism without unfair accusations is always very valuable to us.
Although its relatively recent emergence on the market, refine has quickly established itself as one of the fastest-growing frameworks, thanks to the support and enthusiasm of its great community. Having the invaluable support of prominent VC's and angel investors helps us to broaden our vision and set newer and higher goals we couldn't imagine before.
As it continues to grow and evolve, refine is becoming a one-stop solution for web application development, with the capability to handle an extensive range of use cases. Reaching this new level of success, vastly surpassing our origins as an admin panel creation tool, brings constant excitement to all of our stakeholders and serves as a source of motivation for us to develop innovative solutions for the industry.
refine is %100 open source. It provides all enterprise features of React Admin for free. Additionaly, refine has more features that React Admin enterprise doesn't have.
You can take a look at the comparison table: https://refine.dev/docs/comparison/
It sounds too good to be true when your product is better than every competitor in every aspect. What are refine's weakest points?
Looked a bit more in detail it seems a few features like below are comparably deficient vs React Admin Enterprise:
1. Relationships management (particularly many to many) 2. Persistence of preferences like sort and filters 3. No builtin UI components to display audit logs
PS: i am not associated with them in anyway. Just looking for versatility in tools in this space.
Also XavaPro (java specific and server generated pages design) is much more feature rich
In my opinion, trying to handle routing is the weakest point. However, we are working on this. With refine v4 , we'll remove the router dependecies and you will be able to easily integrate refine to your existing app.
How do you plan to make money with it?
We got a similar question before. You can check it out here: https://github.com/refinedev/refine/discussions/3261
For this use-case I've almost always relied on Rails + custom scaffold generators. There are a few projects like Bullet Train that offer some admin panel features out of the box as well.
Is this a way of bringing that functionality to all these other frameworks as well? It seems compelling because the ability to build out crud resources with a single command is a huge accelerator in Rails projects.
Are there any videos of someone building projects with this? It's useful to see what takes time an what doesn't before committing to a framework like this.
Hey. I'm Adrian, author of Avo. Avo is similar to Refine but for Ruby on Rails.
It helps developers create CRUD-like applications such as internal tools, admin panels, Content Management Systems and user-facing apps.
I love seeing more and more movement in this space.
https://avohq.io
Looks great - how easy is it to customize, and how flexible are the customizations?
You probably heard the phrase "made by developers for developers", so I won't bore you to death with it, but that's the gist of it. I probably built 100 admin panels in the past and I know what I would need in one, so I built a lot of "escape hatches" into Avo so you can extend it and create your own thing.
Sounds interesting
The product looks outstanding! We are excited to see more. Congrats
The most important feature of refine is being headless by design. No limit on customization, refine works with any custom design or UI framework you favor.
For convenience, it ships with ready-made integrations for Ant Design System, Material UI, Mantine, and Chakra UI.
We have tutorial for building a fully-functioning CRUD app, from scratch to full launch using refine. Please take a look: https://refine.dev/docs/tutorial/introduction/index/
Congratulations to the entire refine team on the launch of the new features! It's impressive to see how much the framework has grown and evolved since its inception. At the JavaScript Mastery team, we are looking forward to utilizing all of the benefits of refine in an upcoming video. Keep up the great work!
Thank you for your kind words and congratulations! We are thrilled to see the positive response to our new features and are proud of all the progress we've made since launching refine. We appreciate the interest from the JavaScript Mastery team and look forward to seeing how you utilize our framework in your upcoming video. We will continue to work hard to improve and enhance refine for our users.
I'm not too much into React but this seems like the kind of tools that can massively increase productivity. I can see open-source being a good source of both adoption and virtuousness as well. Very cool!
Thank you, we appreciate your kind words!
This looks great! I have been wishing for a headless CRUD framework for React. i have to dive deeper into this, but it looks promising.
I've read the word "headless" used in different contexts.
How would you define a "headless" CRUD framework please?
Thanks in advance.
In a front-end project, being "headless" means that all functions can work without dependence on any user interface elements/components. With Refine, you can use features such as data management, authentication, real-time functionality, audit-logging, internationalization, and access control with any user interface element/component of your choice. This means that Refine does not restrict you in terms of styling and customization.
Is there any difference between "server side" and "headless" in this context?
https://www.google.com/search?q=server+side+react+framework
In this context, "server side" and "headless" refer to different things. "Server side rendering" (SSR) or "client side rendering" (CSR) refer to a method of rendering a website or application, while "headless" refers to the architecture of the application's business logic.
For more details: https://refine.dev/docs/#what-do-you-mean-by-headless-
Being able to convince others is amazing! Have you used a similar framework before? Thank you
I would like to see examples of integrating refine in a existing app.
Here is complete CRUD admin panel example built using refine: https://example.admin.refine.dev/
You can take a look at the other real world examples with the source codes from here: https://refine.dev/examples/
Additionally the full examples for refine feature implementations:
https://refine.dev/docs/examples/
Where can I find docs for the map component?
Here's a great example, no need for a custom-made refine and Map component document because with refine's headless approach, you can use Map components as you please.
https://github.com/refinedev/refine/blob/next/examples/finef...
Thank you very much for your quick answer! Will study this!
You're welcome! I'm glad I could help. Let me know if you have any more questions.
Does it support GraphQL APIs?
Yes, we support it, you can find the documentation here https://refine.dev/docs/advanced-tutorials/data-provider/gra.... Are you experienced with GraphQL? If you can provide feedback, we would greatly appreciate it.
Great work refine team!
Thank you, we appreciate your kind words!
[dead]