While we have a recommendation, we want to first call out the considerations in choosing a modern web framework.
The obvious need is that it must scale. Build times increasing exponentially in response to growing content will not serve you well.
These component frameworks were originally designed for interactivity on the browser in the era of the SPA (single-page application). Almost immediately, that large sites encountered performance problems. Users would see loading spinners while the application built the UI in real time.
Frameworks are evolving to deliver more either in a pre-rendered state, or on-demand, but from the server. However, until these approaches get more battle-tested and become the norm, it’s important to understand how the framework is handling client-side JavaScript, which can have a major impact on performance.
Although we’re generally talking about only JavaScript as the programming language, developers tend to have strong preferences for the various “flavors” of JavaScript, meaning the UI and site framework.
Having access to a vast community of developers is crucial to build confidence that a shift to a modern architecture can be supported by the available workforce.
Loosely mentioned above, it is also important to understand how a framework can deliver pages to a client. While we’re seeing an evolution toward a hybrid model (more on that below), there are frameworks hanging around that are limited in their ability to render and deliver content to browsers.