Welcome to the first edition of a new feature here on JavaScript Report. Each month we’ll go over the important things you need to know about what’s happening with front end JavaScript frameworks. We’ll be covering usage, performance, conferences, trainings and more.

If you’d like to keep up to date on this, you can sign up for my newsletter. In addition to the latest news on frameworks, the newsletter also covers the week’s best writing on the JavaScript ecosystem, so it’s a useful all-around resource.

If you’re a framework author or contributor and you’d like to bring something to my attention, please to me. I’m happy to include any news or updates.

Framework Usage

Let’s begin by taking a look at current framework usage trends. Below is a chart showing the npm downloads of the the top four front end frameworks — Angular, AngularJS, React and Vue — over the past month. You can click all images below to make larger.

Framework Growth rate past month Growth past year
Angular 1.6% 102.6%
AngularJS 7.2% 97.4%
React 10.5% 153.3%
Vue 24.2% 168.4%

There are a couple of things to notice here. First, all the frameworks have strong annual growth rates, even the venerable AngularJS. In fact, the growth rate for Angular is lower than for AngularJS on a monthly basis and very similar for the one year period.

Another thing to note is that the monthly growth rate for Vue is a bit deceptive. Vue had a noticeable decline in early February and the big gain is partially attributable to it recovering from that drop. As recently as January 21, Vue was in third place, but it's currently the fourth most used framework. If we take a look at the chart for annual usage, this dip is a bit easier to see. Again, click to see larger image.

Another notable trend is the continued strong growth of React. Despite having more usage than the other frameworks combined, it continues to increase its lead vs both Angular versions and is similar to Vue in annual growth.

Other Frameworks of Note

Some pretty interesting numbers here for Preact, Inferno, Ember and Svelte.

Framework Growth rate past month Growth past year
Ember 1.5% 4.5%
Inferno -0.4% -77.7%
Preact 22.1% 489.1% 🚀
Svelte 174.3% 757.6% 🚀

The most significant thing in the chart above is Svelte overtaking Inferno. They may go back and forth over the next few months, but I think this is probably going to hold up over the long term. In the table above the numbers for Inferno look terrible (down 77%), but we can see they don't tell the whole story when we look at the entire year.

I don't know why it's the case, but the download numbers for Inferno are very volatile. Measuring on slightly different dates would have altered the numbers dramatically.

Despite that qualification, Inferno doesn't seem to be thriving. It pains me to say that, because it's an outstanding framework. I think it could use some promotion — blog posts, conference talks, for example.

and look very strong. It will be interesting to see if they carry the momentum forward in coming months.

Framework News

The past month or so has seen a number of important announcements. We’ll kick things off with the big news in the React community.

Beyond React 16

The biggest React news over the past month is no doubt Dan Abramov’s talk from JSConf Iceland. His presentation, lays outs how the upcoming React 17 will improve performance. If you've heard something about React "Suspense" lately, this is the talk where that was introduced.

Inferno 5 Released

You can check out the release notes .

ngAtlanta Report

Although it’s technically more than a month ago, from ngAtlanta is an important read to get a handle on what’s happening in the Angular community. Of particular interest to me is the which will be an option in the upcoming Angular 6. It promises to dramatically reduce bundle sizes.

Love Angular but just wish it was smaller, easier to debug, and compiled faster? These are our goals with Angular’s new renderer code-named Ivy. Its coming as a non-breaking change so you’ll get it automatically in a future release by just staying on Angular’s latest releases (which should be a breeze with ng update). We’ve got a ways to go, but we’re hopeful developers will be able to opt-in to a preview in the first half of this year.

State of VueJS 2018

Another great conference talk here, this time from Evan You, the creator of Vue.js. He gives a “State of Vue” address that reviews the latest work on that framework.

AngularJS Enters LTS

This bit of news is from earlier this year, but feels relevant to some of the other items in this article. The of AngularJS has been announced. After that, the project enters long term support (LTS).

After the release of 1.7.0 the team does not intend to merge any feature or fix that will require even a minor breaking change.

After 1.7.0 we will continue to develop AngularJS, publishing patch releases, 1.7.1, 1.7.2 etc, through Jun 30, 2018. These releases will only include non-breaking change features and fixes to the framework.

EmberConf Hits Portland

EmberConf wrapped up last week. To catch up on what’s happening in that community, you can watch the keynote from Yehuda Katz and Tom Dale (I recently did an interview with Tom 👍).

Radi.js Announced

A new framework has entered the fray, . It’s authored by Mārcis Bergmanis and he begins his announcement by answering an obvious question:

First of all I want to address elephant in the room that is one question you might be having: “Why the heck another JavaScript framework ?”. Well my answer is that I noticed a pattern in all of the frameworks I recently went through and all of them have the same problem. They are stuck in creating Virtual DOM and then running diffing algorithm over it, which led to diffing algorithm wars. And I thought that there is a better way of doing this (sneaking around this war), so I created a tiny JS Framework called Radi.js…

…What if we didn't use Virtual DOM at all, instead work with real DOM instead?

Vue.js Cookbook Released

The already good Vue documentation has gotten even better with of a "cookbook".

In the cookbook, each recipe can and should stand on its own. This means recipes can focus on one specific aspect of Vue, rather than having to give a general overview...we can include more complex examples, combining features in interesting ways. Each recipe can also be as long and detailed as it needs to be, in order to fully explore its niche.

Notable Tutorials and Articles

Wes Bos explains the coming up in React 16.3.

Chris Fritz about 7 secret Vue patterns [VIDEO].

Tyler McGinnis has updated his to React.

Máté Huszárik the transition from AngularJS to Angular.

Wolfgang Wedemeyer tells us about and how it improves on Redux.

Bartosz Szczeciński gets us up to speed on (this builds on Dan Abramov's talk featured above).

Vue Mastery is a site that looks promising. Only one free course for the time being, but more look to be on the way.

Here's an article I wrote about SvelteJS. It has some similar concepts to Vue, but also some other innovative stuff that makes it really fast.

Tyler McGinnis wrote another great tutorial, this time on React, React Router and server-side rendering.

Upcoming Conferences and Workshops

If you have a conference or workshop coming up and would like me to help get the word out, . I'll be happy to help.

Conferences


Date: April 12-14
Location: Amsterdam, The Netherlands


Date: April 18-20
Location: Salt Lake City, United States


Date: April 24-26
Location: Helsinki, Finland


Date: April 28
Location: Sofia, Bulgaria


Date: May 8-10
Location: Chicago, United States


Date: May 17-18
Location: Paris, France


Date: October 2-3
Location: Park City, United States


Date: October 10-12
Location: Orlando, United States

Workshops


Date: April 19-20
Location: New York City, United States


Date: April 19-20
Location: New York City, United States


Date: April 21
Location: New York City, United States

If you’ve enjoyed this post, sign up for my weekly newsletter. In addition to framework news, I curate the best JavaScript writing from around the web and deliver it to readers every Thursday. The sign up form is right below this article.

Until next time, happy coding…