An open sourced web framework has been introduced by Ride-sharing company Uber called the Fusion.js. This plugin based web framework is great for developing lightweight but high performing apps. This JavaScript framework Fusion.js is modular providing pliable plugin-based architecture. It is equipped with modern features like data server-side rendering, hot module reloading along with bundle splitting support. It is also capable of supporting favored libraries like Redux and React.Uber has already created several web apps for its internal and public use but Fusion.js has been created for developing high performing lightweight apps that provide code reuse for both the server and browser. For the purpose of testing and internationalization Fusion.js has built single page apps depending on service layers. This has been done with command line interface, Koa server and a web pack/babel transpilation pipeline with the plug-in architecture. Fusion.js provides testing with Enzyme, Jest, Puppeteer and other integration utilities.

The Motivation behind Introducing Fusion.js
With the evolution of the web industry, Uber wanted to upgrade its old monolithic web framework to one that could face the challenges of the present technologically advanced world. Although the already existent solutions did address these issues it was necessary to glue a library on the framework to bring about changes in multiple files that were not related. The aim was to let engineers maintain compatibility with Uber’s plugin infrastructure besides using React and Redux. The following points were addressed in the core framework.

The Interconnected and compound layout of multiple tools was required for code splitting, server-side rendering, and hot module reloading.
Reduce brittleness from tight code coupling found at different locations
The Absence of a good concept for executing and sharing features involving the various aspects of React applications that were server rendered.
Side effects causing testing difficulties.
Monolithic framework lacking in flexibility

Benefits of Using Fusion.js
Fusion.js offers several benefits for its users

Fusion.js offers a flexible plugin making it suitable for creating single page apps and web apps with complex layers to meet the high-quality requirements.
Fusion.js has a single entry point file allowing it to reuse code for both the server and browser. This helps developers to locate code snippets in the library they relate to.
The plugins make use of dependency injection to reveal well-defined APIs to serve other plugins.
Koa is used by Uber as a middleware management providing a unit context based and friendly API. The concept of upstream and downstream is used for lightweight abstraction and lifetime management.
Besides supporting testing tools like Jest, Puppeteer and Enzyme Fusion.js offers other testing tools for developers to test plugins.

Fusion.js is thus a good choice of framework for those who want to build a significant and modern app using an open sourced boilerplate. To conclude Fusion.js is a JavaScript framework that is MIT licensed and comes with contemporary features like server-side rendering, bundle splitting support and hot module reloading.