Powered by technologies such as React and GraphQL, we see frontend applications reach a level of scale and complexity that was traditionally associated with backend engineering and service architectures. But the browser is also a unique execution environment: All parts of the system share the same runtime, and all parts of the system are not only supposed to provide meaningful APIs to each other, but also to expose a fast, delightful UI to the user. For engineering teams stepping into modern frontend development, it hence becomes critical to distinguish between patterns that can be transferred over from the backend, and patterns that need to be adapted, or dismissed altogether.
About 2 years ago, Jira started its transition towards a modern, React-based Single Page Application. What began with one team of absolute React experts quickly turned into a multi-team, multi-geo program - and just as quickly, maintaining the health and scalability of our frontend codebase became a top priority, and one of the biggest challenges, of the Jira engineering team.