2017 JavaScript Rising Stars

As we did last year, it's time to look back at the JavaScript landscape in 2017.

Let's see by the numbers which projects got traction in 2017 by comparing the numbers of stars added on GitHub over the last 12 months, and find out who are 2017's JavaScript Rising Stars.



The following graphs compare the number of stars added on Github over the last 12 months. We analyzed projects coming from Best of JavaScript, a curated list of the best projects related to the web platform. Note that you can click on a project to get more info.

Most Popular Projects Overall

1
Vue.js

Vue.js

🖖 A progressive, incrementally-adoptable JavaScript framework for building UI on the web.
+40.0k☆
3.0k
3.5k
3.9k
3.1k
3.2k
3.1k
3.6k
3.3k
3.6k
3.4k
3.1k
3.0k
J
F
M
A
M
J
J
A
S
O
N
D
2
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+27.8k☆
2.0k
2.0k
2.6k
2.3k
2.3k
2.0k
2.6k
2.2k
2.5k
2.8k
2.5k
2.2k
J
F
M
A
M
J
J
A
S
O
N
D
3
Create React App

Create React App

Create React apps with no build configuration.
+22.5k☆
2.1k
1.8k
2.3k
1.8k
2.2k
1.8k
1.9k
2.3k
1.5k
1.7k
1.7k
1.5k
J
F
M
A
M
J
J
A
S
O
N
D
4
Puppeteer

Puppeteer

Headless Chrome Node API
+22.0k☆
3.9k
2.9k
3.0k
2.2k
1.9k
J
F
M
A
M
J
J
A
S
O
N
D
5
Axios

Axios

Promise based HTTP client for the browser and node.js
+21.9k☆
1.5k
1.7k
2.2k
2.0k
1.9k
1.8k
1.9k
1.9k
1.7k
1.7k
1.9k
1.7k
J
F
M
A
M
J
J
A
S
O
N
D
6
VS Code

VS Code

Visual Studio Code
+20.2k☆
897
1.4k
1.8k
1.7k
1.5k
1.3k
1.4k
1.6k
1.6k
2.5k
2.6k
1.8k
J
F
M
A
M
J
J
A
S
O
N
D
7
Prettier

Prettier

Prettier is an opinionated code formatter.
+17.7k☆
114
1.1k
1.3k
2.6k
1.0k
1.8k
1.0k
1.3k
721
1.4k
956
1.5k
J
F
M
A
M
J
J
A
S
O
N
D
8
React Native

React Native

A framework for building native apps with React.
+15.6k☆
1.2k
1.3k
1.6k
1.3k
1.3k
1.3k
1.3k
1.2k
1.1k
1.2k
1.3k
1.2k
J
F
M
A
M
J
J
A
S
O
N
D
9
Element

Element

A Vue.js 2.0 UI Toolkit for Web
+14.9k☆
1.4k
1.2k
1.8k
1.2k
1.1k
1.0k
1.1k
1.1k
1.3k
1.4k
1.3k
1.1k
J
F
M
A
M
J
J
A
S
O
N
D
10
Electron

Electron

Build cross platform desktop apps with JavaScript, HTML, and CSS
+14.8k☆
1.3k
1.2k
1.4k
1.3k
1.3k
1.1k
1.2k
1.2k
1.1k
1.3k
1.2k
1.2k
J
F
M
A
M
J
J
A
S
O
N
D

Overview

These are the hottest projects of the year, all categories included.

Vue.js strikes again

Once again, Vue.js is the trendiest project of the year, with more than 40,000 stars added on GitHub during the year.

It's far more than in 2016 (26,000 stars), and the gap with the next contender (React) is even bigger.

So what makes Vue.js special?

  • First, it has a small learning curve, with a component approach similar to React but with a more familiar syntax.
  • The ecosystem is well defined, including a set of de-facto standards: router: vue-router, State management library: Vuex
  • The concept of single-file component that includes template, logic and styles in a single file .vue file is really nice.
  • It's used by one of the most popular PHP frameworks, Laravel, as its default view engine.
  • It's not backed by a big company of the Internet like Facebook or Google but maintained by Evan You as an open-source project sponsored through crowd-sourcing.

And this may be related with the last point, but Vue.js is very popular among developers from China. It's used by the biggest e-commerce platform of China (Alibaba), but also by companies like GitLab or Adobe.

React, number 2, again!

Like in 2016, React is number 2, with more than 27,000 stars added on GitHub (note that we're specifically talking about stars added over the year, not the total number of stars).

Create React App, the third project, is the recommended way to start a new project with React, and its success made a lot of React boilerplates less relevant than before.

Dan Abramov (the creator of Redux, now working for Facebook) did a great job, finding the right balance between simplicity and features. For example there is no fancy styling solution (just plain CSS), no server-side rendering, but everything is well packaged and the developer experience is really good.

Axios

The Axios library is the most used HTTP client.

It can work on both the client side (AJAX requests from the client) or on the server-side (HTTP requests in a Node.js environment)

Its success may be related to Vue.js too, because a lot of Vue.js tutorials use it to query a distant API through HTTP.

Puppeteer

Puppeteer is one of the great stories of the year. Made by the Google Chrome team, it's a headless Chrome browser, that is to say a browser that runs in the background and that can be piloted by code.

It can be used to do things like:

  • Automatically testing web application UIs in real browsers.
  • Taking snapshots of web pages to do server-side rendering.
  • Generating PDF files using Google Chrome ability to save pages as PDF files.

Front-end Frameworks

1
Vue.js

Vue.js

🖖 A progressive, incrementally-adoptable JavaScript framework for building UI on the web.
+40.0k☆
3.0k
3.5k
3.9k
3.1k
3.2k
3.1k
3.6k
3.3k
3.6k
3.4k
3.1k
3.0k
J
F
M
A
M
J
J
A
S
O
N
D
2
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+27.8k☆
2.0k
2.0k
2.6k
2.3k
2.3k
2.0k
2.6k
2.2k
2.5k
2.8k
2.5k
2.2k
J
F
M
A
M
J
J
A
S
O
N
D
3
Angular

Angular

One framework. Mobile & desktop.
+12.2k☆
827
949
1.4k
1.0k
884
911
983
989
925
1.1k
1.2k
930
J
F
M
A
M
J
J
A
S
O
N
D
4
Preact

Preact

⚛️ Fast 3kB React alternative with the same modern API. Components & Virtual DOM.
+10.4k☆
779
498
575
634
829
920
729
2.0k
1.9k
545
401
532
J
F
M
A
M
J
J
A
S
O
N
D
5
Hyperapp

Hyperapp

1 KB JavaScript library for building web applications.
+8.1k☆
1.2k
779
148
113
2.1k
671
321
746
333
189
1.5k
J
F
M
A
M
J
J
A
S
O
N
D

The "front-end framework" category has been a battlefield for a while, but it seems that things are finally calming down, as we can see clearly 3 big players dominating the game.

The Big-3: Vue, React and Angular

Without surprise, the 3 most popular UI frameworks are Vue.js, React and Angular

It's common to call these frameworks but, to be more accurate, the only framework is Angular, and we should call Vue.js and React libraries.

We talked previously about the success of Vue.js and its integrated approach.

By opposition, the React landscape is still fragmented, and developers have to make more deliberate choices about all the things that go around the view layer:

  • Routing between pages.
  • How to fetch data.
  • How to bind forms to data.
  • How store the state of the application.

On the contrary, the Angular ecosystem is more controlled, more stable. There is an Angular Way to do things.

That's probably partly why Angular has a more "corporate" image. And this image has been emphasized with the usage of static types using TypeScript, which resonates with backend developers familiar with types from languages like C# or Java.

Less is more

Behind the Big-3, it's very interesting to notice that Preact is number 4. Preact is a smaller alternative to React: the same API, but in less than 3KB.

Similar, most other contenders in this category emphasize a small footprint that leads to better performance in the browser in order to differentiate themselves from the big 3.

The best example about this motto is Hyperapp, a very hot project over the last weeks. It mixes the functional approach and the JSX syntax from React and a state management system inspired by Redux... In less than 1 KB!

Node.js Frameworks

1
Express

Express

Fast, unopinionated, minimalist web framework for node.
+6.7k☆
542
586
613
587
583
552
512
525
485
610
560
524
J
F
M
A
M
J
J
A
S
O
N
D
2
Koa

Koa

Expressive middleware for node.js using ES2017 async functions
+5.8k☆
422
510
609
486
479
489
421
517
465
441
481
460
J
F
M
A
M
J
J
A
S
O
N
D
3
Fastify

Fastify

Fast and low overhead web framework, for Node.js
+5.8k☆
109
15
87
56
17
91
99
60
2.1k
2.2k
611
342
J
F
M
A
M
J
J
A
S
O
N
D
4
Gun

Gun

A realtime, decentralized, offline-first, graph database engine.
+3.2k☆
181
234
128
106
223
1.3k
162
183
87
128
198
184
J
F
M
A
M
J
J
A
S
O
N
D
5
micro

micro

Asynchronous HTTP microservices
+3.2k☆
434
277
272
252
273
177
244
419
230
198
223
157
J
F
M
A
M
J
J
A
S
O
N
D

Of course JavaScript is no more limited to the front-end side of web applications, it's more and more used to create the back-end too, and Mikeal Rogers, an influent member of the node.js community, predicts that Node.js Will Overtake Java Within a Year.

But unlike other languages where de-facto standards have emerged over the years (think about Ruby on Rails for Ruby, Django for Python or Laravel for PHP), there is no golden standard or recommended architecture when you want to create a new node.js server.

Despite its age, Express was not only the trendiest node.js framework in 2017 but it's also used as the backbone of many other frameworks or CMS, including Feathers, Keystone or Nest.

It seems that Express minimalist approach perfectly matches the micro-services trend that promotes the creation of several decoupled smaller applications over the development of a single "monolith" application.

Compared to last year, 3 newcomers joined the TOP 10 node.js frameworks:

  • Fastify is built as a general-purpose web framework, inspired by Hapi, but is well suited to building fast JSON-based HTTP APIs.
  • Server.js aims to be a ‘everything works out of the box’ experience.
  • Nest features an architecture familiar to Angular developers, made of modules and controller, written in TypeScript.

React Ecosystem

1
Create React App

Create React App

Create React apps with no build configuration.
+22.5k☆
2.1k
1.8k
2.3k
1.8k
2.2k
1.8k
1.9k
2.3k
1.5k
1.7k
1.7k
1.5k
J
F
M
A
M
J
J
A
S
O
N
D
2
Ant Design

Ant Design

🐜 A UI Design Language
+13.3k☆
936
1.1k
971
910
928
941
1.1k
887
1.2k
1.3k
1.6k
J
F
M
A
M
J
J
A
S
O
N
D
3
Next.js

Next.js

Framework for server-rendered or statically-exported React apps
+12.7k☆
893
664
2.1k
1.3k
1.2k
745
1.2k
856
697
1.2k
864
960
J
F
M
A
M
J
J
A
S
O
N
D
4
Storybook

Storybook

Interactive UI component dev & test: React, React Native, Vue, Angular
+9.7k☆
467
429
666
627
807
940
704
1.0k
671
837
1.3k
1.2k
J
F
M
A
M
J
J
A
S
O
N
D
5
Gatsby

Gatsby

⚛️📄🚀 Blazing fast static site generator for React
+9.7k☆
717
481
508
438
573
505
2.1k
664
698
1.1k
796
1.2k
J
F
M
A
M
J
J
A
S
O
N
D

The React library being only the view layer, it creates space for a whole ecosystem that is moving very fast. In this category, we included projects built on top of React and React Native libraries.

In 2016 Create React App solved the problem of how to start coding a React application by providing a nice set of presets, very well packaged. Facebook keeps releasing new versions very often and it was by far the most popular project in 2017 among the React ecosystem.

As an example of its success, we could mention StackBlitz, an online IDE that lets you run application created from Create React App, right from the browser, in a few seconds.

But even if Create React App is often considered as the default "starter kit" for React, developers may need more opinionated starter kits: React boilerplate was the most popular project in this category, providing a lot of feature like the GraphQL integration.

Ant Design, Ant Design Pro and Material UI are sets of styled React components to help developers create a web application with React components, without worrying about the styling.

Recompose's popularity denotes one of the features seasoned developers love about React: its "functional" approach, everything is just a function and Recompose provides a full set of helpers to go further in this direction.

Vue Ecosystem

1
Element

Element

A Vue.js 2.0 UI Toolkit for Web
+14.9k☆
1.4k
1.2k
1.8k
1.2k
1.1k
1.0k
1.1k
1.1k
1.3k
1.4k
1.3k
1.1k
J
F
M
A
M
J
J
A
S
O
N
D
2
iView

iView

A high quality UI Toolkit built on Vue.js 2.0
+9.5k☆
351
613
485
566
929
626
576
1.3k
788
585
J
F
M
A
M
J
J
A
S
O
N
D
3
Vuex

Vuex

🗃️ Centralized State Management for Vue.js.
+7.2k☆
547
597
713
632
588
579
553
582
600
569
638
555
J
F
M
A
M
J
J
A
S
O
N
D
4
Weex

Weex

A framework for building Mobile cross-platform UI.
+6.5k☆
26
116
1.4k
839
764
668
550
563
608
538
456
J
F
M
A
M
J
J
A
S
O
N
D
5
Nuxt

Nuxt

Versatile Vue.js Framework
+6.3k☆
164
354
625
515
537
481
592
732
532
606
635
498
J
F
M
A
M
J
J
A
S
O
N
D
6
Vuetify

Vuetify

Material Component Framework for Vue.js 2
+6.3k☆
322
191
363
385
402
360
569
554
1.1k
777
615
585
J
F
M
A
M
J
J
A
S
O
N
D
7
Mint UI

Mint UI

Mobile UI elements for Vue.js
+5.5k☆
116
J
F
M
A
M
J
J
A
S
O
N
D
8
vux

vux

Mobile UI Components based on Vue & WeUI
+4.6k☆
306
382
510
392
361
383
394
399
373
311
409
426
J
F
M
A
M
J
J
A
S
O
N
D
9
vue-router

vue-router

🚦 The official router for Vue.js.
+4.6k☆
408
400
460
411
396
407
370
352
374
403
351
313
J
F
M
A
M
J
J
A
S
O
N
D
10
Vue material

Vue material

Material design for Vue.js
+3.7k☆
328
405
449
320
307
304
303
293
251
273
245
234
J
F
M
A
M
J
J
A
S
O
N
D

Guest Writer: Evan You

As much as we admire Vue.js, we have to admit we're not that familiar with its ecosystem.

That's why we looked for an expert to give us their opinion on this year's stats, and who better than the creator of Vue.js himself?

With the rising popularity of Vue itself, many Vue ecosystem projects also enjoyed rapid growth in 2017.

Element and iView are the two most popular UI component kits, both focused on rapid desktop UI development. Mint UI and vux, on the other hand, are the two most popular mobile-focused UI kits.

Vuetify is a Material Design component framework that can be used for both mobile and desktop web apps, and is probably the most feature rich with server-side rendering, PWA and CLI template support. There's also Vue material which focuses more on providing a set components that strictly adhere to the Material Design spec.

Nuxt is a higher-level framework built on top of Vue that provides a very smooth development experience for building universal, server-rendering Vue applications. It is also very versatile - you can use the same codebase to ship a normal SPA, or even generate a static site.

Weex is a framework that allows users to develop native-rendering mobile apps using familiar Vue syntax and API. It is developed by Alibaba and used in production in some of the most heavily used mobile apps in the world, with a strong focus on performance.

Mobile

1
React Native

React Native

A framework for building native apps with React.
+15.6k☆
1.2k
1.3k
1.6k
1.3k
1.3k
1.3k
1.3k
1.2k
1.1k
1.2k
1.3k
1.2k
J
F
M
A
M
J
J
A
S
O
N
D
2
Weex

Weex

A framework for building Mobile cross-platform UI.
+6.5k☆
26
116
1.4k
839
764
668
550
563
608
538
456
J
F
M
A
M
J
J
A
S
O
N
D
3
Ionic

Ionic

Build amazing native and progressive web apps with open web technologies. One app running on everyth
+5.5k☆
500
443
515
530
509
437
439
419
421
465
510
311
J
F
M
A
M
J
J
A
S
O
N
D
4
Quasar

Quasar

Quasar Framework
+3.7k☆
17
297
341
244
314
266
298
397
360
343
301
331
J
F
M
A
M
J
J
A
S
O
N
D
5
NativeScript

NativeScript

NativeScript is an open source framework for building truly native mobile apps with JavaScript. Use
+2.9k☆
241
224
245
238
255
224
217
211
299
280
271
233
J
F
M
A
M
J
J
A
S
O
N
D

JavaScript is so versatile that it can also be used to build mobile applications, meaning that you can share components between the web and the mobile platforms.

In this category, we find again the 3 main actors of the "Front-end frameworks":

Like in 2016, React Native is the trendiest solution, based on JavaScript, to build a native application, whether it's for iOS, Android or Windows systems.

As highlighted in this video Cross platform apps with React Native, the promise: "Write Once, Run Everywhere" was fulfilled!

Compilers

1
TypeScript

TypeScript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
+11.6k☆
738
855
972
1.1k
928
936
976
1.0k
818
1.2k
1.1k
992
J
F
M
A
M
J
J
A
S
O
N
D
2
Babel

Babel

Babel is a compiler for writing next generation JavaScript.
+5.7k☆
390
382
447
395
361
336
371
412
397
564
1.1k
587
J
F
M
A
M
J
J
A
S
O
N
D
3
Flow

Flow

Adds static typing to JavaScript to improve developer productivity and code quality.
+5.1k☆
335
303
505
577
484
447
381
420
372
433
392
417
J
F
M
A
M
J
J
A
S
O
N
D
4
Reason

Reason

Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems
+2.1k☆
186
79
186
143
115
85
72
151
284
266
201
395
J
F
M
A
M
J
J
A
S
O
N
D
5
Purescript

Purescript

A strongly-typed language that compiles to Javascript
+1.2k☆
123
77
96
101
63
96
92
106
99
121
123
108
J
F
M
A
M
J
J
A
S
O
N
D

Here we talk about languages that compile to regular JavaScript code.

You may need such a compiler in your building workflow for 2 reasons:

  • You want to enjoy all the features of the latest version of the JavaScript language (ES7) while making your code compatible with a maximum of Web browsers. This feature made the success of Babel, which a lot of projects depend on.
  • You want to add new features to the language... such as "type checking".

One of the hottest questions that divide developers is: types or not types?

JavaScript has basic dynamic types but not static types. A lot of developers feel like they need types in their code, especially in big code base, to make it more robust and easier to read/understand.

And then, if you think you need types, the 2 main contenders are: TypeScript, provided by Microsoft and Flow, provided by Facebook (and used on their main projects: React, React Native, Jest...)

Read this article from James Kyle to understand the difference: A Comparison Between Adopting Flow or TypeScript

Build Tools

1
Parcel

Parcel

📦🚀 Blazing fast, zero configuration web application bundler
+14.0k☆
1
1
13.9k
J
F
M
A
M
J
J
A
S
O
N
D
2
Webpack

Webpack

A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting a
+13.1k☆
1.4k
1.2k
1.2k
1.1k
1.1k
1.2k
1.1k
995
714
1.0k
1.0k
1.0k
J
F
M
A
M
J
J
A
S
O
N
D
3
Gulp

Gulp

The streaming build system
+3.6k☆
344
313
376
391
303
254
291
302
237
286
270
228
J
F
M
A
M
J
J
A
S
O
N
D
4
Rollup

Rollup

Next-generation ES6 module bundler
+3.5k☆
338
267
270
498
288
289
254
260
200
203
297
362
J
F
M
A
M
J
J
A
S
O
N
D
5
Poi

Poi

Delightful web development.
+2.7k☆
127
132
94
129
82
78
54
165
178
200
1.3k
J
F
M
A
M
J
J
A
S
O
N
D

It's maybe the biggest surprise of the year, the trendiest building tool is Parcel, a brand new project that gathered more than 14,000 stars since the project was launched on GitHub in August.

Parcel offers all the goodies of modern web development with a killer feature: zero configuration!

That's the main difference with Webpack, that relies on a whole ecosystem of plugins called "loaders".

Do not misunderstand the numbers, Webpack is still the most popular bundler for modern applications, with a total of 35,000 stars on GitHub and more than 500 contributors.

A lot of projects use it under the hood, including Create React App and Gatsby, 2 of the most popular projects of the year.

Webpack keeps on evolving, the version 2 lets developers implement features like "code splitting" very easily, through dynamic imports.

While Webpack and Parcel both target the building process of web applications, Rollup targets libraries. It focuses on performance by taking advantage of ES6 modules.

Rollup is used by some major libraries and it's worth to mention that the React team migrated their build system from Browserify to Rollup in 2017.

From the React blog

Rollup is a perfect fit for libraries like React that can be pre-built and then integrated into apps.

Poi has the same goal as Parcel: a build tool for modern web applications and libraries, it's zero-config by default but gives you the ability to extend via presets.

Testing Frameworks

1
Jest

Jest

🃏 Delightful JavaScript Testing.
+7.1k☆
498
519
647
549
884
499
549
476
473
705
664
675
J
F
M
A
M
J
J
A
S
O
N
D
2
AVA

AVA

Futuristic JavaScript test runner
+4.8k☆
1.0k
522
452
377
358
304
315
303
260
321
294
245
J
F
M
A
M
J
J
A
S
O
N
D
3
Mocha

Mocha

☕️ simple, flexible, fun javascript test framework for node.js & the browser
+3.1k☆
242
253
266
244
251
230
231
259
238
269
295
287
J
F
M
A
M
J
J
A
S
O
N
D
4
Jasmine

Jasmine

Simple JavaScript testing framework for browsers and node.js
+1.2k☆
93
95
128
97
106
94
96
120
88
76
109
83
J
F
M
A
M
J
J
A
S
O
N
D
5
Tape

Tape

tap-producing test harness for node and browsers
+1.0k☆
149
90
135
105
91
63
65
70
79
54
57
51
J
F
M
A
M
J
J
A
S
O
N
D

As we predicted last year (it's the first time we predicted something right!), Jest became the trendiest testing framework in 2017.

It was first created by Facebook to run tests for React components, but its evolution has been very fast over the last months (already 22 majors versions released!) and it can be used to write tests for front-end and back-end code.

Jest shines because of several points:

  • No configuration needed, the default settings match the usually needs
  • Great developer experience (intelligent watch mode, very nice error reporting...)
  • Syntax close to Mocha, a lot of developers are familiar with describe and it keywords
  • No extra library required to make assertions, it's "battery included".
  • Features a unique "snapshot" mode that records automatically the response expected for future tests.

AVA, number one last year, has still a lot of traction.

It has been created by Sindre Sorhus who uses it on all his projects... and that means a lot of great projects!

It emphasizes on speed by running tests in parallel, it has a smaller footprint and is closer to testing standards, with a syntax close to test frameworks like Tape.

IDEs & Editors

1
VS Code

VS Code

Visual Studio Code
+20.2k☆
897
1.4k
1.8k
1.7k
1.5k
1.3k
1.4k
1.6k
1.6k
2.5k
2.6k
1.8k
J
F
M
A
M
J
J
A
S
O
N
D
2
Atom

Atom

The hackable text editor
+9.1k☆
838
766
764
604
798
695
774
871
921
763
724
557
J
F
M
A
M
J
J
A
S
O
N
D
3
Reactide

Reactide

Reactide is the first dedicated IDE for React web application development. http://reactide.io
+7.4k☆
2.2k
181
109
66
76
34
71
38
73
J
F
M
A
M
J
J
A
S
O
N
D
4
Brackets

Brackets

An open source code editor for the web, written in JavaScript, HTML and CSS.
+1.9k☆
138
164
233
142
172
126
189
161
192
142
112
106
J
F
M
A
M
J
J
A
S
O
N
D
5
Nuclide

Nuclide

An open IDE for web and native mobile development, built on top of Atom
+1.4k☆
152
167
154
152
145
101
127
75
123
68
82
76
J
F
M
A
M
J
J
A
S
O
N
D

Here we talk about the text editors from the open source world, built with web technologies (sorry for Sublime users!).

In 2016, VS Code, backed by Microsoft and Atom, backed by GitHub were really close at the top of the category.

They also led the way in 2017 but VS Code took a big advantage over its rival.

Every month, a new version of VS Code is released bringing, more and more helpful features to the IDE, without sacrificing performance too much. Out of the box, without installing anything, you have a great set of features:

  • Git integration
  • Autocomplete for a lot of things: JavaScript syntax, local file paths when you require or import a module, NPM packages names...
  • React syntax integration

If you add Prettier to the mix, asking the editor to automatically format your files every time you save, you have the perfect combo to enjoy code poetry!

CSS in JavaScript

1
Styled Components

Styled Components

Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without
+8.7k☆
852
545
899
861
874
744
703
697
625
677
555
703
J
F
M
A
M
J
J
A
S
O
N
D
2
CSS Modules

CSS Modules

Documentation about css-modules
+2.9k☆
234
227
272
234
313
307
246
254
194
210
234
217
J
F
M
A
M
J
J
A
S
O
N
D
3
Polished

Polished

A lightweight toolset for writing styles in JavaScript ✨
+2.9k☆
518
262
210
139
96
94
129
96
103
J
F
M
A
M
J
J
A
S
O
N
D
4
Glamorous

Glamorous

💄 Maintainable CSS with React
+2.9k☆
531
273
206
196
292
139
151
120
165
J
F
M
A
M
J
J
A
S
O
N
D
5
Emotion

Emotion

⚡️ The Next Generation of CSS-in-JS
+2.5k☆
488
257
190
352
186
298
J
F
M
A
M
J
J
A
S
O
N
D

There is still no consensus about the best way to style React components.

You can use a ready-made component toolkit like Material UI or Ant Design if your needs are pretty "standard" and you don't need too much customization.

Or, if you need more flexibility, you can do it the "old way", using global CSS styles from a popular CSS toolkit like Bootstrap or Bulma, and assigning appropriate classNames to your components. But then your component is not self-contained anymore, since its style is being managed elsewhere.

To address this issue, the "CSS in JavaScript" category has emerged.

The concept is simple: with React you already manage both your component logic and its template using JavaScript. Why not go further and encapsulate the styles in your components, using JavaScript for styling too?

Styled Components was by far the trendiest project in this category this year. It lets developers include regular CSS syntax inside the React components, using a recent addition to the JavaScript language: tagged template literals.

CSS Modules, number 2 in this category, adopts a more hybrid approach. It lets developers write styles in the language of their choice (regular CSS, Sass, Less, Stylus), using files that are located next to the related components and that are imported into the components

Mark Dalgleish, one of the authors of CSS Modules, wrote one of the most interesting articles about the CSS-in-JavaScript approach: A Unified Styling Language. This article is highly recommended for people who might be somewhat skeptical about this new technique.

Static Sites

1
Gatsby

Gatsby

⚛️📄🚀 Blazing fast static site generator for React
+9.7k☆
717
481
508
438
573
505
2.1k
664
698
1.1k
796
1.2k
J
F
M
A
M
J
J
A
S
O
N
D
2
Hexo

Hexo

A fast, simple & powerful blog framework, powered by Node.js.
+6.2k☆
664
519
609
487
469
431
494
537
471
509
476
486
J
F
M
A
M
J
J
A
S
O
N
D
3
React Static

React Static

⚛️ 🚀 A progressive static-site generator for React.
+3.0k☆
2.2k
341
338
J
F
M
A
M
J
J
A
S
O
N
D
4
Phenomic

Phenomic

Modular website compiler ⚡️
+1.4k☆
140
392
123
103
127
125
92
59
50
77
42
67
J
F
M
A
M
J
J
A
S
O
N
D
5
Metalsmith

Metalsmith

An extremely simple, pluggable static site generator.
+1.0k☆
107
90
72
85
82
72
136
73
81
72
80
61
J
F
M
A
M
J
J
A
S
O
N
D

Static site generators (or "SSG") are tools that generate a bunch of .html, .css and JavaScript files that you can deploy on any web server without the fuss of setting up a database. Static web sites are fast, robust and easy to maintain.

Number 2 in 2016, Gatsby gets revenge in 2017. It comes with a lot of great features to optimize your static site:

  • Fast browsing & exporting
  • Aggressive preloading
  • Intelligent code splitting (templates + page data)

Gatsby uses React as the view layer and GraphQL to query the content at the building time. It has a strong community and React official web site itself is built with Gatsby.

React Static is the newcomer in this category. It aims to be a lighter alternative to Gatsby, with a focus on performance and simplicity, inspired by Create React App project.

It's worth to mention that both Next.js and Nuxt projects can also be used as Static Site Generators.

GraphQL

1
Gatsby

Gatsby

⚛️📄🚀 Blazing fast static site generator for React
+9.7k☆
717
481
508
438
573
505
2.1k
664
698
1.1k
796
1.2k
J
F
M
A
M
J
J
A
S
O
N
D
2
React Starter Kit

React Starter Kit

React Starter Kit — isomorphic web app boilerplate (Node.js, Express, GraphQL, React.js, Babel, Post
+4.3k☆
414
371
363
417
449
358
350
367
308
347
313
258
J
F
M
A
M
J
J
A
S
O
N
D
3
Apollo client

Apollo client

A fully-featured, production ready caching GraphQL client for every UI framework and GraphQ
+4.1k☆
64
338
348
285
295
327
295
331
414
438
393
J
F
M
A
M
J
J
A
S
O
N
D
4
GraphQL

GraphQL

GraphQL is a query language and execution engine tied to any backend service.
+2.8k☆
127
165
266
250
323
250
220
210
250
244
212
276
J
F
M
A
M
J
J
A
S
O
N
D
5
GraphiQL

GraphiQL

An in-browser IDE for exploring GraphQL.
+2.6k☆
213
222
242
J
F
M
A
M
J
J
A
S
O
N
D

When future historians look back at the history of GraphQL, 2017 might very well be a turning point.

Major companies such as the New York Times have started adopting GraphQL, and on the library front both Relay and Apollo (the two main GraphQL client libraries) released major updates this year.

Beyond these two big players, companies like Graphcool have also released a plethora of tools and libraries, and GraphQL-powered full-stack frameworks like Vulcan are also starting to create their own niche.

It's also worth mentioning that this year's most popular static site generator Gatsby also uses GraphQL as part of its data processing chain.

With so many players venturing out in the GraphQL galaxy, it's only a matter of time before the technology becomes a widespread alternative to REST.

Conclusion

We hope you enjoyed this round-up of the JavaScript universe in 2017.

We have seen by the numbers that Vue.js is once again the winner of this year, and its success is not slowing down.

The React eco-system keeps growing up, after finally putting its license-related issues behind it.

But if we had to pick one project among the 2017 Rising Stars it would be Prettier. It's so nice to be able to write code without worrying about formatting!

And for another point view on the latest trends, be sure to also check out the State of JavaScript 2017 survey, where we collected and analyzed responses from more than 23,000 developers.

So going forward, which projects do you think will be the next JavaScript Rising Stars in 2018?

  • A new framework based on GraphQL?
  • A library that takes advantage of the new WebAssembly standard to create a unique experience in the browser?

Let us know what you think! In the meantime, thank you for your attention, and feel free to share this article or reach us on Github if you have any feedback… and see you next year!


Authors

Sacha Grief
Author of Discover Meteor and creator of Vulcan, a React+GraphQL open-source framework.