Back to blog

2020 in review and beyond

Olivier Tassinari

@oliviertassinari

Matt Brookes

@mbrookes

2020 has been another great year, not only for MUI, but also for the ecosystem. We have taken on ambitious challenges and started to scale the project.

Growth

It's only with your trust that we could achieve the following outcomes in 2020. Thank you!

  • ๐Ÿ“ฆ From 3.2M to 6.4M downloads per month (from 14% to 18% share of the React ecosystem).
  • ๐Ÿ“ˆ From 3.1M to 4.6M unique visitors per year on the documentation.
  • โญ๏ธ From 53.3k to 63.8k stars, leave us yours ๐ŸŒŸ.
  • ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ From 1,581 to 2,052 contributors.
  • ๐Ÿ’ฐ Grew financial support by 2.1X in 2020, compared to 2019.
  • ๐Ÿข From 3 to 6 full-time equivalent developers, spread among multiple financially supported core team members.

The numbers speak for themselves. We have reproduced the traction we got in 2019.

In review

When we started 2020, we were celebrating the launch of many new components. We were busy building features to match feature parity with Ant Design, and more importantly, acting on the top feedback we got doing the first user survey.

We have spent the year continuing in the same direction, polishing past components and introducing new ones. We ran a second user survey, 15 months after the first one. It was a great opportunity to evaluate the effectiveness of our past efforts. For instance, we were very pleased to see that the slider component was almost a solved problem, and that the TypeScript definitions significantly improved. We also noticed the emergence of trends:

  • The more new components we add, the more developers want new ones. For instance, we rarely heard about the need for providing charts in 2019, it's now one of the top requested. In our last survey, we had 10% more requests for new components, even though, we brought new ones. We were surprised, it was counter-intuitive to us.
  • The pain around the customization of the components is growing. We also frequently hear that there is a steep learning curve for using @mui/styles. We are reaching a larger audience used to raw CSS without extensive knowledge of specificity.
  • The demand for Material Design is stable, no longer growing. At the same time, the request for new ready-to-use themes is up. Our strategy around providing building blocks to build custom designed UI starts to gain traction.

We have started to leverage these trends as opportunities in the next version of the library: v5.

Achievements

We have achieved most of what we could have hoped for.

  • The most important, we have welcome 3 members in the company: Damien, Marija, and Danail.
  • We have made significant progress with v5. We have made half the breaking changes planned. We have migrated our first component to the new style architecture (emotion by default, adapter for styled-components, and unstyled).
  • We have introduced new components (some in the core, some in the lab):
  • We have fixed most of the issues with the Autocomplete. We have received an overwhelming interest in the component. It was impressive to see.
  • We have completed the work for strict mode support.
  • We have increased the adoption of TypeScript in the codebase. We don't plan a dedicated migration but to write new code in TypeScript, as we go.
  • We have migrated most of the tests from Enzyme to Testing Library.
  • We have modernized the system, introducing an sx prop to be used in all the core components.
  • We have added support for Figma and Adobe XD.
  • We have released the first Enterprise component in an alpha version: XGrid.

Looking at 2021

2020 was great, 2021 is going to be even more exciting! We will continue in the same direction, it's still day one. Here is a breakdown of our roadmap.

Branding

Up until now, we never had a mindful reflection on what the branding of MUI should be. We picked a color from the 2014 Material Design palette, and that's it. The mui.com marketing website will soon wear a brand new style! We need to create our own identity, distinct from Material Design.

MUI X

We started to deliver advanced React components in 2020 with the data grid, including a commercial version and the beginning of a date range picker. We will double down on these existing components as long as necessary to have them find the market.

By the end of 2021, we aim to have released these components as stable, implement all the features planned, and at least double the size of the team.

MUI v5

We will release the next major iteration of the library. A highlight of the key improvements coming โœจ:

  • Polish and promote most of the components that were in the lab in v4 to the core.
  • A new style engine. Migrate from JSS to emotion (default) and styled-components's styled API.
  • Improve customizability. Add new powers to the theme with dynamic color & variant support. Add a new sx prop for quick customizations to all the components. Expose global class names. Deprecate the makeStyles and withStyles API.
  • Breaking changes on the API to make it more intuitive.
  • Add full support for React strict mode. We recommend to enable it.
  • Improve the performance of the system by a x3-x5 factor.
  • Reduce bundle size: split IE11 into a different bundle -6kB, migrate to emotion -5kB, Popper.js v2 upgrade -700B.
  • Improve the documentation website: search shortcut, page rating, fast material icons copy button, etc.

And much more.

A second theme

While Material Design is a predominant design choice for building rich client-side applications, it's not the only popular design trend. We plan to provide a second theme to expand the range of use cases for MUI, striking a balance between:

  • alignment with the best-looking design trends of hot startups in the US.
  • optimization of its usage for rich client-side applications while keeping it good enough for landing pages.
  • simplicity of the design for allowing simpler customizations.
  • complementarity with Material Design.

It will be built on top of the unstyled components.

Unstyled

While the completion of the unstyled components was originally part of the v5 milestone, we will likely finish this effort independently. Outside of the requirement to introduce breaking changes on the component customization API, e.g. from PaperProps to componentsProps, RFC #20012, we can work on unstyled at the same time we make progress with the second theme. The two efforts should go hand in hand.

Scale

If we sustain the current growth rate, we should be able to double the size of the team, from 6 to over 10 members in the company without raising. While we will focus on strengthening all the efforts that we have started, it should start to give us room to take on significantly more ambitious problems guided by the following foundations:

  • React dominance in the UI development landscape will increase and stay for a very long time.
  • Developers are looking to build faster and more appealing UIs.
  • Low-code will progressively become mainstream for professional developers and knowledge workers.

If like us, you are excited about bringing joy to developers and enabling more people to build apps, check our positions, we are hiring!

See you in 2021 ๐Ÿš€