| ▲ | chvid 3 hours ago | |||||||
For boring applications - do people prefer the copy paste approach of shadcn instead of a traditional ui library like mantine? The copy paste approach may be easily modifiable but creates new problems - ie now there is an upgrade ai agent for something that should just be ticking up a version number. | ||||||||
| ▲ | notpushkin 3 hours ago | parent | next [-] | |||||||
I’m leaning towards vendoring for all my new projects. Grabbing an off-the-shelf UI library is easy in the short term, but it’s usually overcomplicated, implements things I won’t ever need, is hard to tweak if/when you want to distinguish your app from the thousand others using the same library, and when you do decide to upgrade it, all your tweaks break in subtle ways. What I think would be the best approach is building your own UI library. You own it, you get to reuse it across different projects and maintain the same visual style (if desired), and you add features when you need them. | ||||||||
| ||||||||
| ▲ | lucumo an hour ago | parent | prev | next [-] | |||||||
> that should just be ticking up a version number. Ah, but it's rarely just that in many systems. It can only be just that if the component library does exactly what you want. Unfortunately, it happens quite often that component doesn't entirely do what's needed. People bolt on extra CSS to the components all the time. Two lines of CSS is very tempting if the alternatives are a few hours of work at least. But those two lines need to be verified against every new feature of the component library. Do those two line fixes a lot, and upgrading becomes A Project. | ||||||||
| ▲ | Exoristos 3 hours ago | parent | prev | next [-] | |||||||
Mantine is brilliant, I can build anything in it quickly and then extend it or completely customize the theme or individual components, but there is a learning curve. I would not call it a giant learning curve. | ||||||||
| ||||||||
| ▲ | rzmmm 2 hours ago | parent | prev | next [-] | |||||||
I don't like the copy paste. Rather use lower-level abstractions for the UI if I know I have to make modifications. | ||||||||
| ▲ | sreekanth850 an hour ago | parent | prev | next [-] | |||||||
Bigger issue ,every app that use shadcn use 100% same. I still have to figure how people differentiate their brand using shadcn. | ||||||||
| ▲ | victorbjorklund 2 hours ago | parent | prev | next [-] | |||||||
If you don't need to make any changes, it should be very simple to just upgrade by replacing the components. And if you need to make changes then well it's not gonna work with a traditional UI library. | ||||||||
| ▲ | p-e-w 28 minutes ago | parent | prev | next [-] | |||||||
> now there is an upgrade ai agent for something that should just be ticking up a version number. If a component as basic as a button or a list view ever requires an “upgrade”, something is fundamentally wrong to begin with. HTML5, ARIA, etc. aren’t cutting edge technologies that the ecosystem still needs time to figure out. This should be pull once and forget. | ||||||||
| ▲ | sevenzero 3 hours ago | parent | prev | next [-] | |||||||
I highly prefer a copy and paste approach. The less npm installs the better. | ||||||||
| ▲ | IceDane 3 hours ago | parent | prev [-] | |||||||
Martine just straight up sucks. Vendoring your components gives you the best of both worlds. You get a full component library but retain the ability to modify them as you want. Your AI agent claim doesn't make any sense either. When upgrading normally your component just gets rewritten on disk. When switching from radix to base ui, a more comprehensive approach is needed. | ||||||||
| ||||||||