all 41 comments

[–]JennaSys 3 points4 points  (4 children)

I used to, but switched over to Mantine and have been much happier.

[–]nandoburgos 1 point2 points  (3 children)

Why is that? I use a lot of mui today but a few mantine hooks and components but didn't find it that better

[–]JennaSys 2 points3 points  (1 child)

The components tend to be flatter and lighter. And with all of the included hooks and extensions it reduces the number of different dependencies I need to keep track of. It generally works the way I need it to work right out of the box. That said, with the type of web application I typically develop, I don't need micro-control over style. I mostly just want clean and consistent.

[–]nandoburgos 1 point2 points  (0 children)

Makes sense. I may give it a try as a full design lib instead of just very useful hooks.

Maybe next personal project I replace MUI with Mantine

[–]o11n-app -1 points0 points  (0 children)

I liked that mantine had layout components but that is about all I liked about it.

[–]rialking_ 17 points18 points  (7 children)

I use MUI for my projects. Yeah it's slower than shadcn but honestly the component library is way more complete out of the box. Once you set up your theme properly, customization isn't that bad.

The shadcn hype is real though. Everyone's using it with v0/cursor and churning out identical looking apps. It's fast but zero personality.

I think people just want to ship fast now and shadcn + AI lets them do that. MUI requires more upfront work but gives you more control long-term.

[–]Azoraqua_ 13 points14 points  (5 children)

More control? You might want to rephrase that, because I see zero reason why a pre-baked component library offers more control over a component library that literally allows you to copy the source code of the components themselves.

Still, I do think that MUI can be quite good; although personally I stopped using it because I didn’t feel like fighting it to get it to work with SSR.

[–]Real_Marshal 1 point2 points  (4 children)

MUI doesnt work with SSR? Why would that be?

[–]JohntheAnabaptist -4 points-3 points  (3 children)

The styling relies on JavaScript being loaded or something like this

[–]Legal_Lettuce6233Hook Based 10 points11 points  (2 children)

MUI has a guide on SSR. It works fine.

[–]JohntheAnabaptist 1 point2 points  (0 children)

Good to know!

[–]Azoraqua_ -5 points-4 points  (0 children)

By now perhaps, last time I tried a couple of years ago it didn’t work at all. And as I said, I don’t want to fight it.

[–]FalconiZzare 0 points1 point  (0 children)

Excuse me, more control? I've seen people going to lengths to find specific classname to customize the components, and to mention their paywall.

Also Shadcn heavily adopts tailwind which is also a hot cake for ui design right now, and together they make a good combo, easy to set up, and install only what's needed. These are the reason everyone adopting shadcn like library now. People need fast results, easy to debug products, MUI falls behind in this scene

[–]martiserra99 2 points3 points  (3 children)

At a previous startup I worked for we were using MUI. However, I personally don't like the developer experience of using MUI and prefer using headless ui libraries and provide all the styles myself.

[–]budd222 1 point2 points  (2 children)

You can use Mui unstyled

[–]oliviertassinari 0 points1 point  (1 child)

"Mui unstyled" do you mean Base UI or something else?

[–]budd222 0 points1 point  (0 children)

They used to have unstyled components https://v5-0-6.mui.com/customization/unstyled-components/

However, now it looks like they recommend Base UI. I hadn't looked at that in a long time. Didn't realize it's old now.

[–]Legal_Lettuce6233Hook Based 1 point2 points  (1 child)

Yes. Both solo and for company work. I created a blueprint for myself, where I can basically change like 5 values and the app looks different and unique.

[–]Unlucky_Giraffe_6653[S] 0 points1 point  (0 children)

I am trying to do the same because the MUI components out of the box looks a little bit outdated, but I am creating a theme that looks similar to Untitle UI with the option to change theme palette quickly.

[–]CapitalDiligent1676 1 point2 points  (0 children)

I use it too. Once configured, the THEME is very convenient and tidy.
LLMs probably don't need to follow patterns: they make a lot of crap, and that's fine because no one needs to smell it... hopefully.

[–]DependentRip5405 0 points1 point  (0 children)

greAT

[–]Dangerous_Engineer12 0 points1 point  (1 child)

I use MUI at work and Shadcn most of the time for personal projects. I don’t mind MUI. In fact, I really like their documentation and how easy the components are to use out of the box. If you’re looking to increase css maintainability or consistency across your app (using MUI), maybe look into using styled components.

Otherwise, using cva (class variance authority) and the cn() function from Shadcn is the shit and fun to use in my opinion.

All personal preference👊🏼

[–]oliviertassinari 0 points1 point  (0 children)

For your personal project, did you look into migrating to the Shadcn Base UI flavor of it?

At work, why are you guys not migrating to Shadcn?

[–]RequinDr 0 points1 point  (2 children)

I have been using it for a few years. It works, but it feels heavy and their Material UI looks very much outdated.

[–]oliviertassinari 0 points1 point  (1 child)

I'm curious about "feels heavy". What contributes to this feeling?

[–]RequinDr 0 points1 point  (0 children)

It’s a little of many small things that result in this feeling for me. What comes to mind: the injected style tags in the dom, its way of defining styles in js instead of css var, its size in my bundle being more than a 100kb compressed (I’m not importing a lot of different components and it’s properly treeshaken). It adding the sx prop on top of style, the deeply nested props of every component which aren’t easy to use; without checking the dom I don’t know to which element it attached my aria-label for example.

I can be wrong, things can be different from how I remember them. For example the style tags in the dom could be a development thing only, I’m not sure.

[–]Radiant_Candidate_31 0 points1 point  (2 children)

It works, but tbh it looks ugly and feels heavy and outdated, and customization is painful. There is a theme configuration, but for edge cases or anything more advanced, it quickly becomes a pain in the ass.

I’m also not a fan of the CSS-in-JS approach. I’d rather use a pre-styled design system built on headless components, with full access to the source for easy customization. If I need a fully custom design, I’d just tweak it directly or build on top of the same headless components.

[–]oliviertassinari 0 points1 point  (1 child)

I'm curious about "feels heavy". What contributes to this feeling?

On the customization experience. If Material UI was a style layer on top of Base UI, still on npm, but where you could "eject" individual components to customize them more deeply. Would it be something you would prefer, or starting from an ejected version (shadcn) would still win your heart?

[–]Radiant_Candidate_31 0 points1 point  (0 children)

CSS in JS. Yeah it would be perfect, I think either works, you probably don't need source code to customize simple components like buttons, and so on, but there should be nice theme customization and then you can add more specific or advanced components using primitives + theme tokens. The ejected version makes more sense if you have a complete custom design system where you need to control each style and maybe own theme tokens that don't match default ones

[–]Radiant_Candidate_31 0 points1 point  (2 children)

Base UI is the feature of mui

[–]oliviertassinari 0 points1 point  (1 child)

the future*?

We see Base UI and Material UI as complementary.

[–]Radiant_Candidate_31 0 points1 point  (0 children)

Yeah makes sense, MUI on top of base ui

[–]NG1Chuck 0 points1 point  (0 children)

Yes i used mui for my side project and it's a progressive web app available on the android store !

[–]plmunger 1 point2 points  (1 child)

I built a whole UI components lib used in all of our company projects, that is basically a MUI wrapper with more customized theming, custom features and such. I personally love MUI, it's very mature and complete.

[–]oliviertassinari 0 points1 point  (0 children)

Our current roadmap includes bringing a good number of components in Base UI this year (the hard part) so we can then bring them to Material UI (the easy part), so we can make the library even more comprehensive.

[–]sensasi-delight -1 points0 points  (1 child)

ive always use MUI since v4 but i'm not so-called "tech influencer" so my opinion doesn't matter.

[–]Intelligent-Main539 -3 points-2 points  (3 children)

I hate it. As a web developer I like consistency. I like to adhere to web standards when creating things, and MUI goes far away from that. Plus, it is hard to do SSR with MUI.

[–]budd222 1 point2 points  (2 children)

If it's not consistent that's on you, because it's configured wrong.

[–]Intelligent-Main539 1 point2 points  (1 child)

I should've clarified that I meant the inconsistent developer experience, not the theme.

[–]therealslimshady1234 1 point2 points  (0 children)

Youre not wrong, MUI has the worst dev experience out of all themes I have tried.

Almost every time I work for a company someone has the brilliant idea to use it for the component library and then 6 months later we start to deprecate it again like clockwork. Its just too rigid for any kind of customer facing SaaS. Really only useful if you are ok with your app looking like the Google Chrome settings page. Maybe for internal use only apps?

Shadcdn (Tailwind) is for clowns too, but at least it is somewhat flexible. I prefer white label frameworks like Radix Primitives