Introducing Inferno 1.0

Luke Sheard
inferno_js
Published in
7 min readJan 5, 2017

The fastest UI library and the team behind it

Firstly, what is Inferno?

Inferno is a lightweight, blazingly-fast, and mobile-efficient JavaScript library. Derived from React, Inferno’s architecture & lifecycles will feel familiar, but its computational engines render it a totally different beast. Inferno stands as one of the fastest frameworks available and has been developed from the onset with a focus on performance while maintaining React compatibility.

Humble Beginnings

Nearly two years ago, the JavaScript world was filled with many debates about front-end performance and assertions that “the web is as fast as it’s over going to be”; so, naturally, Dominic Gannaway began to experiment.

Admittedly, developers did struggle to write highly performant applications using any of the UI libraries or frameworks available during this time. To no fault of their own, these libraries just didn’t have the same technologies or were able to leverage modern improvements to JavaScript engines. And so, many developers turned to “vanilla” JavaScript, which did the job, but quickly became messy & hard to maintain as their apps grew.

Performance issues were especially highlighted in the mobile space, and in the two years since, there hasn’t been much improvement. While library footprints shrank, some users still waited ~5 seconds for a 2MB to parse and load.

Many developers, including Dominic, grew increasingly frustrated and desperate for an answer. It was obvious that libraries needed to diet down and start caring about performance. Experiencing an application from a laptop was never, ever synonymous with mobile experience; especially in emerging markets.

Now, as a result of many tests & a growing list of contributors, Inferno proves that it is possible to be fast on mobile. Much of this success is a direct result of hoisting Time to Parse (‘TTP’), First Meaningful Paint (‘FMP’), and Time to Interactive (‘TTI’) as first-class priorities, among others.

This was possible because the Inferno team worked closely with the TypeScript and V8 teams, so that Inferno’s compiled core leverages and works with the modern V8 engine. As a result, Inferno is one of the most highly optimized JavaScript UI library currently available.

Inferno’s power, reach, and usage exploded as its list of contributors increased — a prime example of OSS a it’s best. The project, which once started as a mere experiment, now has a full core team, actively committing thousands of hours into building and polishing this beast known as Inferno.

What the project has achieved?

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. It’s consistently rated one of the fastest JavaScript UI library in all independent benchmarks and has been benchmarked internally (used for metrics against internal projects) at Google, Facebook, Microsoft and Yahoo.

Inferno has been used at companies such as:

  • The Grid
  • Evite.com
  • Globo.com (Brazil)

(If your company/project isn’t listed, let us know!)

Inferno has also had many phenomenal kudos and positive reviews from across the JavaScript community. Although recognition is not our driving force, nor are stars or downloads, we love hearing that the library is going in the right direction:

Inferno 1.0 is really well written. It’s how I would’ve written React. I’d recommend reading its source to learn.

— React core team member at Facebook

Explain the path going forward?

In 2017 Inferno will focus on continuously improving its core functions, addressing bugs as quickly as possible and providing support and guidance to the community. Effort will be placed into adapting new libraries to expand Inferno’s reach and modularity for a wide range of use cases. To date a range of modules have been ported, but with additional effort from the community we intend on expanding this further. Some of the focus we’ve planned this year includes:

Internal Optimizations:

  • Improving VDOM normalization process
  • Optimizing internal functions
  • Refactoring our mono-repo using Lerna
  • Improve typings

Planned module ports

  • Material-UI

General ideas

  • Improve SSR and streaming

Our roadmap is 100% community driven and we are constantly looking to improve the library to maximize developer satisfaction. If you have any idea for an enhancement we encourage you to become involved by contributing or at minimum hop on Slack or post a Github Issue for consideration. If we don’t hear from our community, we won’t know what direction it needs to run in.

Our Team

The Inferno team is comprised of dedicated individuals who strive to build the best possible framework. The following members are core contributors, who have supported the project with a range of competencies:

  • Dominic Gannaway (Community Founder) — An experienced software engineer/architect with a strong focus on web technologies, open-source, leading agile teams and writing elegant JavaScript code. He has contributed to many open-source projects and is soon to join Facebook’s React team in London.
  • Sampo Kivisto (Core Contributor) @havunen — Sampo is a Finnish software developer and one of the first contributors to Inferno and has worked closely with Dominic throughout the project’s evolution. He currently working at Visma Solutions Oy.
  • Luke Sheard (Core Contributor) — Luke is a British application developer based in London, UK. He has a keen interest in web technology, open source and developer experience. He’s contributed to various React projects before focusing on Inferno and aims to improve developer experience.
  • Luke Edwards (Core Contributor)— Luke Edwards is a freelance full-stack (front-end heavy) developer and web designer. He’s obsessed with performance and believes that open-source should be an integral part of every developer’s career. Luke spends his spare time perfecting Fly.js, constructing front-end boilerplate starters, and building new packages for Elixir lang.
  • David Di Biase (Community & Website Support)— David is a full-stack software developer based out of Toronto, Canada. He has grown and managed his team of designers and developers at Pilot Interactive for 8 years. He has contributed by managing the Inferno website, docs and general community maintenance tasks.
  • Ryan Megidov (Core Contributor) @nightwolfz — Ryan has been doing front-end and back-end development for more than 10 years. He loves following tech trends, using the best tools for the job, and experimenting with various new technologies. He stresses that he doesn’t wear socks and sandals at the same time, but the core team doesn’t believe him.
  • Dan Tocchini (Community Support) @d4 — Dan is the founder of The Grid, a software company that aims to solve “the website problem using artificial intelligence”. He has contributed to a number of open-source projects including but not limited to GSS (an efficient and elegant Cassowary implementation in JS).
  • Mike Lawrence (Website & Design Support) — Mike Lawrence is a User Interface designer living and working in Nashville, TN. His work centers around User Experience and Accessibility. When not developing applications Mike enjoys burritos, Star Wars and making up funny voices for his cats.
  • Rudy Luthi (Community Contributor) @tluthi- Rudy is a senior front-end engineer at Evite, the leading provider of online invitations, and co-founder of Caseworx, a scenario learning content platform that serves the Business Education and Corporate Learning & Development markets. He is curious and passionate about web technologies, believes in lightweight, useable and beautiful interfaces, and enjoys functional programming.

Community, Facebook, and Inferno’s Future

The Inferno project and community was founded by Dominic Gannaway, who has spent hundreds of hours making Inferno and the community as strong as it can be. In early 2017, Dominic will be transitioning to Facebook to share his performance knowledge with the React Fiber team. While Dominic’s new focus will shift, he will continue to advise and engage with the community periodically. However, the community & core team he’s assembled and worked alongside will continue improving Inferno with the same spirit and gusto that Dominic instilled.

Our team is incredibly ecstatic for Dominic’s new opportunity and grateful for the knowledge we’ve gained from his leadership. This is, however, not a farewell by any means. Dominic is not abandoning the project — he will continue to be present; albeit, in a smaller capacity. The last few months have been testament to the project and community’s strength and stability. Dominic’s contributions no longer represent a bulk of the effort because other core contributors have stepped in to address issues, manage future maintenance, and applying improvements.

Dominic and we, the core team, strongly feel that Inferno has evolved into an emboldened community effort with a strong direction. Together, we reap the benefits of our community everyday and welcome all of you to contribute to this amazing project.

The Inferno experiment is a resounding success and has a very bright, promising future ahead of it.

Our Supporters

Inferno is graciously supported by a number of corporate patrons who provide us with software, support and guidance. To date we have worked with DigitalOcean, Sauce Labs, BrowserStack and The Grid. Our community is directly dependent on the support from great people but also great companies who care about open-source software. We’re happy and excited to work with other corporate partners who want to work with Inferno to improve its core performance, provide support and guidance.

Conclusion

Inferno has grown from a passion project focused on researching fast UI to a fully fledged and involved community project. Two years of effort and incredible dedication from numerous team members has resulted in one of the fastest libraries available in the open-source space. Furthermore, the learnings from the project will go on to inform developers across the JavaScript community and power numerous applications across the web.

Our resolve has simply been to produce something meaningful while being respectful and considerate of the other projects and efforts. Matter of fact we often compare Inferno to other communities as being brother/sister projects that share the same upbringing and objectives. We hope Inferno will be a shining example of comradery and innovation, a supportive and truly communal effort in the largest sense possible. Faster and better UI across JavaScript-land is the achievement we seek to attain for anyone focusing on this effort.

The Inferno Core Team appreciates the words of encouragement and congratulatory remarks across the board and we look forward to making the library better, faster and stronger in 2017.

Sincerely,

Your friends on the Inferno Core Team

https://www.infernojs.org

--

--