Rendered at 15:51:27 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
_345 17 hours ago [-]
What inspired you to make this?
benswerd 17 hours ago [-]
gonna use it on my websites homepage
dprkh 19 hours ago [-]
Why did you choose to use shadcn registry?
benswerd 19 hours ago [-]
Generally, when using these components I ended up wanting to customize a lot. I switched around the options, coloring, the words in the loading, I mix and matched the components from different CLIs, etc.
I think these are more useful as baselines than as final destinations, and I expect production users to customize them far more than options in components.
I also separately don't really believe in traditional components anymore, code is cheap. The value in these components is that I took the time to pixel match a bunch of the CLIs, not the specific interface used to integrate them.
tipiirai 18 hours ago [-]
What are traditional components? How are untraditional better?
benswerd 18 hours ago [-]
Think MUI, heroUI, traditional components have you install their package, import the component and configure it through arguments.
ShadCN components have you copy the component code into your codebase, you own it. They come with the ability to configure arguments, but also because the code is yours its expected that you change the internal logic/styling/structure of the component.
I believe in the era of AI code the ladder just makes more sense.
crab_galaxy 18 hours ago [-]
If you are using shadCN as building blocks for a centralized component library I think it makes more sense, but personally I don’t think the component registry pattern scales well across multiple teams/UIs. ShadCN and tailwind really encourage design drift.
I think shadCN has its place for sure but I’d always advocate for Mantine and css modules anywhere early enough to use premade UI solutions.
scoot 17 hours ago [-]
> ShadCN components have you copy the component code into your codebase, you own it
That’s a common misconception/myth/lie that doesn’t seem to want to go away even though Shadcn is more honest about it these days.
You don’t own the compenents, and you don’t copy the component code into your codebase. The components are Base UI (and previously Radix)
And they’re imported like any other.
What you’re copying is a thin styling wrapper, just the same as you can use to restyle “traditional” components.
The difference is that you have to provide all the styles, rather than just overrides, which can be both a blessing and a curse.
benswerd 17 hours ago [-]
I think this is a misinterpretation. BaseUI provides baseline semantics that because the code is in your codebase you can choose to keep or remove. BaseUI is also actively unstyled/unopinionated, you use it to compose your own components, which again live in your codebase.
When you import shadcn components you can rebuild them however you want, thats the point.
bbg2401 17 hours ago [-]
> When you import shadcn components you can rebuild them however you want, thats the point.
Why not use BaseUI directly?
benswerd 16 hours ago [-]
I'm a big believer in guides. ShadCN provides great starting points for continued engineering as do other ShadCN libraries. For companies with the resources to, they do just start with BaseUI.
In the long run I think most UI will be BaseUI/RadixUI + Component and style guides, prompts, and traditional packages will no longer be relevant.
nightski 16 hours ago [-]
I mean, you are using BaseUI directly... The components on top live in your code base.
benswerd 15 hours ago [-]
i agree, very pro that
scoot 15 hours ago [-]
That seems a bit of non-argument. You can choose to keep or remove any components from your codebase, styled or unstyled, composable or monolithic.
What Shadcn gives you is a layer of abstraction that separates the underlying (imported) components from the code that consumes them, so you change your button in one place. It’s exactly how better frontend teams consume just about any component library, Base UI or otherwise.
Shadcn really is a bit of a nothing burger, or rather it’s a bit of soggy lettuce between the meat and the bun.
sim04ful 19 hours ago [-]
I love this!
techpression 17 hours ago [-]
I fully expected this to be complements for the output you get from those tools for some reason, that AI generated look. No idea why anyone would want that though.
Exoristos 16 hours ago [-]
On a barely-related note, I'm getting a little tired of job openings at startups that emphatically require Shadcn and Tailwind for dedicated frontend development. Shadcn and Tailwind are crutches for "fullstack" devs -- if I'm a really accomplished frontend developer, they make little sense for me to use and hamper what I can do for you. Just a peeve.
maxcb 5 hours ago [-]
I suppose not everyone is a really accomplished frontend developer, though. Better to stick to accessible solutions like Shadcn and Tailwind, rather than have a project stagnate should the accomplished frontend developer leave. Maybe AI adds a layer of protection here, but either way most companies esp. startups, don't need CSS masters, they need people who can build solutions.
benswerd 11 hours ago [-]
With respect to CSS expertise, I don't need/want perfect CSS at my company, I want styling that is clear and workable. Tailwind and ShadCN gets me there, my most backend-y backend engineer gets tailwind. The job of CSS on my team is not to be beautiful or top 1%, its to function.
foxygen 14 hours ago [-]
I don’t know about Shadcn, but how does Tailaind hampers your ability to do anything?
Exoristos 14 hours ago [-]
Some developers are CSS experts.
foxygen 14 hours ago [-]
Can you show me some examples that are hard to implement in Tailwind? I've been using Tailwind for an app with a somewhat complex UI for the past ~2 years, and it works great most of the time. Sometimes it doesn't, but then I write some CSS. Tailwind doesn't stop me from doing so.
whatshisface 13 hours ago [-]
Tailwind removes the C and the S, leaving only the S in CSS. (In long form, CSS is supposed to encourage modularity and a separation of concerns, concepts totally abandoned in the world of per-element styles.)
Yiin 12 hours ago [-]
Tailwind is the worst form of CSS, except for all the others.
Exoristos 12 hours ago [-]
You're kind of missing the point. I'll probably bungle this analogy, but why is it important to a furniture startup that a master carpenter can put together Ikea?
teknofobi 1 hours ago [-]
Because you’ll be a force multiplier making the IKEA builders have nicer materials and surface finishes, instead of making really nice furniture pieces that get thrown away on every redesign. Same reason to want a .NET backend dev that plays well with others, instead of a lisp dev with a perfect reimplementation of their own web framework, but going across stacks or teams requires onboarding on the tech instead of just the domain
I think these are more useful as baselines than as final destinations, and I expect production users to customize them far more than options in components.
I also separately don't really believe in traditional components anymore, code is cheap. The value in these components is that I took the time to pixel match a bunch of the CLIs, not the specific interface used to integrate them.
ShadCN components have you copy the component code into your codebase, you own it. They come with the ability to configure arguments, but also because the code is yours its expected that you change the internal logic/styling/structure of the component.
I believe in the era of AI code the ladder just makes more sense.
I think shadCN has its place for sure but I’d always advocate for Mantine and css modules anywhere early enough to use premade UI solutions.
That’s a common misconception/myth/lie that doesn’t seem to want to go away even though Shadcn is more honest about it these days.
You don’t own the compenents, and you don’t copy the component code into your codebase. The components are Base UI (and previously Radix) And they’re imported like any other.
What you’re copying is a thin styling wrapper, just the same as you can use to restyle “traditional” components.
The difference is that you have to provide all the styles, rather than just overrides, which can be both a blessing and a curse.
When you import shadcn components you can rebuild them however you want, thats the point.
Why not use BaseUI directly?
In the long run I think most UI will be BaseUI/RadixUI + Component and style guides, prompts, and traditional packages will no longer be relevant.
What Shadcn gives you is a layer of abstraction that separates the underlying (imported) components from the code that consumes them, so you change your button in one place. It’s exactly how better frontend teams consume just about any component library, Base UI or otherwise.
Shadcn really is a bit of a nothing burger, or rather it’s a bit of soggy lettuce between the meat and the bun.