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.
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,...)
edit: By the way, what is your opinion on the "inferencer" package?
1. How complex was the upgrade path between major versions?
2. Are you guys cashflow positive?
3. What are your competitors?
Thanks
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?
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.
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.
- 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 ;)
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.
You can take a look at the comparison table: https://refine.dev/docs/comparison/
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.
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.
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/
How would you define a "headless" CRUD framework please?
Thanks in advance.
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: