Over the last few years our focus has been on modernizing the Upwork stack to improve performance and reliability. My attention was recently drawn to a note about “Micro Frontends” in the thoughtworks Technology Radar, an approach we have been following as part of our modernization effort. I’d like to share the challenges we have faced and how we have gone about solving them. It might be worth noting that we have not traditionally used the term ‘micro frontends,’ but I have a feeling this may change as a result of the more formal documentation referenced above.
Good frontend development is hard. Scaling frontend development so that many teams can work simultaneously on a large and complex product is even harder. In this article we'll describe a recent trend of breaking up frontend monoliths into many smaller, more manageable pieces, and how this architecture can increase the effectiveness and efficiency of teams working on frontend code. As well as talking about the various benefits and costs, we'll cover some of the implementation options that are available, and we'll dive deep into a full example application that demonstrates the technique.