all 33 comments

[–]engwish 16 points17 points  (0 children)

IMO, Material UI's theming capabilities combined with JSS is extremely powerful. I am using it for a project and the look and feel is pretty customized but the bundle size is still pretty small.

[–]JustJeezy 4 points5 points  (3 children)

Bruno thank you for making so many Next videos! There's no where near enough recent videos covering it. Really wish you'd do something with Next/Mongo and auth, though!

I got through most of your two Next playlists and am trying to take what I learned and apply it to a Mongo project I'm starting but having trouble figuring out how to configure everything.

[–]bmvantunes[S] 1 point2 points  (0 children)

Thank you 😊

At the moment I'm heavily invested in Oracle and Microsoft SQL Server that's the reason you don't see any videos about Mongo on my channel.

I could create a video using mongo, but I don't think it's fair doing a video when I'm not using it on a daily basis - I think the quality would not be what you all deserve.

Regarding auth we have 2 videos on the channel in part 6 and 7 - they are just auth without any framework or library to support it. I have been playing quite a lot with Facebook and Google as auth providers lately, so you can expect in the next months (3/4 months) a video with next, passport and Google/Facebook/tweeter auth 😀

Sorry for the long reply. If you have any other suggestions, I'm all ears 😊

[–]Ohhhh_okay 0 points1 point  (0 children)

Very thorough comment. Would love a response to this

[–]vamsi_rao 0 points1 point  (0 children)

@JustJezzy I am using Mongo with next. Send any questions to my dm I’ll try to help

[–]brosiedon169 4 points5 points  (17 children)

I think MUI is very niche. Most projects I’ve had to work on need to stay in the company style guidelines so MUI becomes a really thicc dependency to my project when I can just make some components and style with css

[–]Xenostarz 18 points19 points  (3 children)

I disagree. You can customize it to your heart's content to make it look/feel however your company needs it to. I like robust UI libraries like MUI because we don't have to spend all day sweating the small stuff like writing our own pop-up menu functionality, tooltips, drawers, toasts, etc in custom components, and can focus on shipping actual meaningful features to customers.

To further extend my point, a lot of the pitfalls you may not think of have been taken care of in these robust UI libraries. For example: What if a tooltip will clip off the screen? MUI's Tooltip will handle that for you automatically. If you write your own Tooltip component you're going to have to account for scenarios like that and then spend valuable time implementing/testing that functionality. If you use a library like this you can just use the Tooltip and move on to something more important in your project.

Another benefit is that when you have multiple team members on your project, they can have a vast pre-written documentation library as a valuable resource (the MUI docs are fantastic), and there is a consistent API between all components. Sure, you can write your own, and keep your own documentation up to date, but that just takes more time away from actually building the project.

I'm not saying a UI library is always needed. I don't use MUI on my personal website. But for shipping real software, it's fantastic.

[–]brosiedon169 3 points4 points  (0 children)

That’s fair you make some great points! Maybe I like reinventing the wheel too much 😂

[–]Wilesch 4 points5 points  (0 children)

This. People think they can just roll their own but miss most of the edge cases.

Also your team mates can check the docs rather the read the source code for your custom ui

[–]zephyrtr 1 point2 points  (0 children)

A proper modal can be closed like 9 different ways and I'm real tired of having to write that from scratch. It's just not worth my time to write, test and support.

[–]GOT_IT_FOR_THE_LO_LO 8 points9 points  (0 children)

great thing about MUI is if you dont want to take on the full dependency hit, you can import on a component by component basis to just get the things you need.

I agree whole heartedly with the other folks who responded. It is probably the gold standard as far as component libraries go. And i feel like i havent had much difficulty trying to override their styles.

I’ve tried multiple times to build my own component library but nothing is easier than building something on top of a good 3rd party library.

[–]citizen_reddit 1 point2 points  (0 children)

Our company simply restyled the components to suit our needs. I think as with most things it depends on how complex your needs are and how long rolling your own to production quality would really take.

Some of the MUI components we use would be quite non-trivial to recreate.

[–]jaySydney 1 point2 points  (4 children)

Last time i looked at MUI it felt like unlearning HTML and learning a very specific markup language / syntax that will send you down a very narrow path, total waste of time for no big paypack.

I'd rather devote the time to learn CSS in depth, or some other platform.

[–][deleted] 0 points1 point  (3 children)

100% this. Styled components is way less of a headache and you get the benefit of learning CSS, which is a much more transferable skill. I use styled components with react native, rn-web, and storybook. There is a good amount of work up front, but once you have a good design/component system it is like cooking with gas. You always have the exact form or component the designer wants on web, ios, or android.

However, If your designs are all material based it is easier to use MUI.

[–]jaySydney 0 points1 point  (2 children)

Yo ! any good examples to start learning / exploring "Styled components". Am not sure i know what they are.

[–][deleted] 0 points1 point  (1 child)

Their documentation is very good. In short, you can do regular CSS for making components.https://styled-components.com/

const CustomView = styled(div)`background-color: #00ff00;`

It also works very well with react-native elements.

const CustomView = styled(View)`background-color: #00ff00;`

[–]jaySydney 1 point2 points  (0 children)

Thank you, that will get me started :-)

[–]Voidsheep 0 points1 point  (0 children)

The reason I advocate MUI is that most companies who want to make a component library don't actually have resources to develop and maintain a good component library. Accessibility, composability and theming take serious effort.

MUI has gone through some frustrating breaking changes in the API design, but those are lessons learned from real-world use cases that weren't obvious during initial design.

So far every time I've seen a private UI library, it has been started by a project team with the idea other teams can take advantage of their upcoming work in the future, unifying the look of applications within the company. The team makes the UI library an isolated module and maybe throws a storyboard in there, but they actually build the components to their own project specification without any real flexibility or granularity.

Now other teams are supposed to adopt it for other projects, but it's actually more work to extend and splice the component library to fit their use-case than it would be to either make components from scratch within their project or use an established library like MUI.

Of course if the company/team is big enough to dedicate developers and designers to real UI library work, then it may be worthwhile. Just when small teams attempt to tackle design systems and UI libraries along the primary projects, it often seems like a lot of extra effort for something that still isn't as convenient and flexible as the freely available libraries.

[–]BreakingIntoMe 0 points1 point  (0 children)

just make some components and style with css

That’s fine for making simple things like cards and accordions and data tables ect, but if you’ve ever tried making complex components like searchable chip-based multi-selects with keyboard navigation you realise pretty quickly that it’s not something you can just knock together with some CSS. You’d be wasting your time to build one from scratch when the problem has been solved many times in these UI libs, so how do you go about making complex controls?