Uber joins the framework race with Fusion.js
Everyone knows Uber for their ride-sharing app, but what about frameworks? Meet Fusion.js, a new open source web framework from Uber. Focused on building lightweight apps, this framework uses plugin-based architecture to get the job done.
Be honest, when you think of Uber, you probably think of a wild night where the ride-sharing service got you home safely. Maybe you’re still mad that some driver rated you four stars instead of five. You probably don’t think of web technologies. Time for that to change.
Uber’s Web Platform team is actually quite prolific and builds web-based applications. Add one more to the tally, because they just released Fusion.js, an open source web framework for developing lightweight, high-performing apps.
What sets Fusion.js apart from the other frameworks out there? It is a plugin-based universal web framework and on its website boasts the line: Build more, configure less. Let’s take a look inside and see what this rocket is packing.
Under the hood
Core features include:
- Plugin-based architecture and DI system for maintainability
- Out-of-the-box support for server-rendering of React components, bundle splitting and hot module reloading.
- Tree-shaking support on universal code
- Ready-to-use testing environment with Jest, Enzyme, Puppeteer and integration test utilities.
Previously, Uber was using a monolithic framework that was already becoming dated and by nature of being monolithic, wasn’t very flexible. It was time to step up their game and create something to rival the other frameworks out there.
Now, Fusion.js is modular and provides a flexible plugin-based architecture. It also has bundle splitting support, an optimized boilerplate that comes pre-configured, and hot module reloading. On the Uber engineering blog, it’s suggested that Atomic.js is perfect for single-page applications and “web apps that depend on complex service layers to meet quality requirements”.
Plug it in
Let’s take a brief look at the plug-in architecture.
Develops can also test plugins. Run an integration test with the fusion-test-utils package.
Better yet, it supports all of your favorite libraries, including React and Redux. (With the astronomical rise in React popularity, this is a feature that we warmly welcome.)
React integration is done with
fusion-react, which provides a Fusion.js application class that comes pre-configured with React universal rendering. From the release notes, we learn that
fusion-react “allows you to declare asynchronous dependencies at the component level, and make them work fine with server-side rendering as well as client-side rendering.”
Take Fusion.js for a spin
Ready to go for a ride? The getting started guide has everything you need. See what’s happening on GitHub while you’re at it. There are also plenty of guides available that will guide you through how to fetch data, create a plugin, universal rendering, debugging, static assets, and more.
From the Uber engineering blog, “Within Uber, there are already more than 60 repositories using Fusion.js since its internal release.” Will we see Fusion.js rise to the top? It faces some seriously tough competition. The market is already saturated with plenty of other open source frameworks. Will Fusion.js be different enough to get a foothold?
Have you tried Fusion.js? How do you feel about big name companies such as Uber creating open source frameworks? Let us know your thoughts in the comments below.