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.
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.
I have used and mostly like Shadcn, and yet their Radix-based radio button was a bit much, as are other choices, where similarly overblown solutions were used.
How about leveraging llms to produce deterministic codemods? You can then iterate on this by running the codemods and using other deterministic guardrails, feeding the results back into the llm to improve the codemods?
I think the two complement each other perfectly and will continue to do so. I keep writing AGENTS.md files for soft rules and custom linter rules for hard ones which IMO is the best of both worlds.
That's great. Started using Base UI early on via 9ui [0] and found the primitives very pleasant to work with, especially if one wants to compose more complex components from other Base UI components. Maybe Shad can reduce some of the dependencies they rely on now.
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.
[delayed]
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.
I have used and mostly like Shadcn, and yet their Radix-based radio button was a bit much, as are other choices, where similarly overblown solutions were used.
https://news.ycombinator.com/item?id=46688971
Moving away from codemods and towards LLMs doing migration work is an interesting development.
Even if they’re more deterministic, I wonder if the days of codemods are numbered.
How about leveraging llms to produce deterministic codemods? You can then iterate on this by running the codemods and using other deterministic guardrails, feeding the results back into the llm to improve the codemods?
I think the two complement each other perfectly and will continue to do so. I keep writing AGENTS.md files for soft rules and custom linter rules for hard ones which IMO is the best of both worlds.
That's great. Started using Base UI early on via 9ui [0] and found the primitives very pleasant to work with, especially if one wants to compose more complex components from other Base UI components. Maybe Shad can reduce some of the dependencies they rely on now.
[0] https://www.9ui.dev
based