About Inferno
Inferno 1.0 is really well written. It's how I would've written React. I'd recommend reading its source to learn.— member of the React core team at Facebook
Objective
Inferno is designed to be a light-weight and blazing fast React-like Javascript library for building modern interfaces. It was also designed to be React compatible, modular and isomorphic. The community supporting its development is tasked with continuously improving performance and exploring new and efficient methods.
What's React?
For those not familiar with React, Inferno is a JavaScript library for building user interfaces in a declarative manner. Rather than working with MVC/MVVM style patterns, Inferno uses a component-based approach where data flows in one direction, making coding predictable, re-usable and highly testable. Based on the concept of learn once, write anywhere, Inferno doesn't impose any restrictions on how you create components. You literally write JavaScript to state how you'd like your UI to look – Inferno does all the rest. Inferno also renders content on the server via inferno-server and NodeJS, so you can write awesome UIs that get rendered full-stack.
History
Inferno started as an idea two years ago, to see if a UI library could really improve the experience, battery, memory usage and performance on mobile devices. At the time we really struggled to get good performance on any UI library/framework at the time – it simply wasn't happening, we spent a huge amount of time writing lots of vanilla JavaScript code and it did the job – but it was a mess.
Since then, things haven't really improved much in the mobile space. Libraries have gotten smaller, but the time to parse a 2mb app can result in 5+ seconds time before the user can even see anything. Frameworks and libraries need to lose bloat, they need to care about performance. Developing on a MacBook Pro and seeing animations, routing, complex UIs instantly appear is not going to happen on an average mobile device (especially in emerging countries).
Who's Using Inferno?
Inferno 1.0 was officially released in early January 2017, however many projects have already started using Inferno either in production or for internal testing. In a short period of time Inferno grew from around 150 Github stars at the start of the year, to around 7300 by the end of the year, 15 NPM downloads to 15k a month and 300k downloads from the CDN. Inferno is actively being vetted or already in production by these companies:
If your company/project is actively using Inferno, we'd love to know about it!Read About Inferno
As the Inferno community grows and evolves, we hope that other people will contribute by writing new articles about the library or the community surrounding it. Here's a collection of some articles published to date:
- Learn About Inferno JS: Build and Authenticate an App
- Hacker News
- Inferno - Blazing fast, React-like UI library - Interview with Dominic Gannaway
- JS web frameworks benchmark – Round 4
- Introduction To Functional Front-Ends With Inferno
Mobile
Inferno proves that it is possible to be fast on mobile. Parse-time, load-time, rendering complex UIs and all the normal things you'd expect to just work. How Inferno does that is based on many factors, but ultimately Inferno's code is much better understood by modern JavaScript engines and can be highly optimised to perform far better than other libraries/frameworks.