At Answers.com, we are constantly striving to improve the user experience on our site. From UI updates to launching an app on the iOS and Google Play store, our day to day is focused on consistently enhancing the accessibility and reach of our product. In response to the introduction of Web Vitals from Google, we set our site on a new objective: improving performance. Web Vitals introduces a standard measurement of user quality experience with a few metrics: loading (LCP), interactivity (FID), and visual stability (CLS). Web Vitals is not only valuable for providing critical user experience data, but it is also a data point used by Google to determine your site’s ranking in their algorithm.
Problem & Methodology
To improve the site experience and performance, we focused on two of our biggest problems, shifting elements on the page and network request size. To accurately measure the impacts of our changes, we opted to make small incremental changes. We also wanted our changes to have the most considerable impact with minimal effort. Taking a look at our deliverables, one of our most oversized packages, material-ui, had an overall parsed js size of 204.33KB. This package, along with some of the script evaluation time that material-ui introduces, led us to focus on removing material-ui and switching to tailwindcss.
Our largest package, material-ui, had an overall parsed js size of 204.33KB.
Another factor in our decision to remove material-ui was that we had moved further away from most of the base material-ui designs. We were spending quite a lot of development time fighting against the default material-ui styles, and we determined that switching to something more flexible would save us time in the long run.
Removing material-ui from our stack used quite a bit of development time; however, the payoff was worth it as we can now quickly design and implement new features to the site. To start, we looked at components that were used most often around the site and rebuilt them using tailwindcss. This helped us in two ways,
- We were able to confirm that removing material-ui would have a positive impact on site performance.
- We could see a few immediate gains after replacing these common components.
Along with removing material-ui, we also optimized third-party scripts, images, and data sent to the frontend.
What We Learned
With the focus on web vitals, we had to take a few things into consideration that never came up before during our development process. This had led to a few changes in what we consider when creating and implementing a new feature on our site, such as math solution functionality. After the big push for performance gains, we are now more focused on implementing new features while maintaining and improving site performance. Another lesson is that while frameworks can be great for getting something off the ground, they could actually cause development pains further along during the life of the application. As we continue improving Answers with new and exciting features, we will always be on the lookout for performance gains that will improve user experience and overall satisfaction.