TL;DR

  • The category is dominated by Meteor.
  • The “all-in-one” model isn't that popular.

Here, we are talking about integrated solutions to build web applications from the back-end side (including the database and the web server) to the front-end layer, using only one language (JavaScript).

Let's face facts: unlike other categories like front-end frameworks, there are very few true contenders in this category apart from Meteor. For that reason, we'll skip the “other frameworks” chart since it didn't reveal any meaningful trends.

Full Stack

Filter:
  • All
  • Interest
  • Satisfaction
Show:
  • Percents
  • Numbers
  • Never heard of it
  • Heard of it, not interested
  • Heard of it, would like to learn
  • Used it before, would not use again
  • Used it before, would use again

Meteor is the pioneer of full-stack frameworks, with an active community and a strong ecosystem, so it's no surprise that it's known by 90% of respondents.

Meteor may be the most popular solution in terms of GitHub stars (more than 35,000), but the MEAN (Mongo + Express + AngularJS + Node.js) stack was used by almost twice as many users in our survey (3000 vs 1700). Moreover, satisfaction levels are better for Mean (66%) than for Meteor (59%).

Take MEAN, replace AngularJS by React-Redux and you get the MERN stack, the new fancy kid in town. It seems that many developers went from Angular to React and they seem to be very satisfied (an impressive 86%), even though the total number of users is low compared to Meteor and MEAN (around 450).

FeathersJS and DoneJS have very little traction. In fact DoneJS has not been updated for 6 months on Github.

That being said, FeathersJS seems to be more appropriate as an API layer, its service-oriented architecture and its real-time capabilities providing a nice way to build decoupled applications. From a personnal point of view, I like this micro-services-oriented approach over the monolithic approach favored by true full-stack frameworks like Meteor.

How likely are full-stack framework users to also use other technologies?

Plain JavaScriptES6CoffeeScriptTypeScriptElmClojureScriptNo FrameworkReactAngularAngular 2EmberVueBackboneReduxMobXRelayREST APIFirebaseGraphQLApolloFalcorHorizonMeteorFeathersJSDoneJSMERNMEANMochaJasmineEnzymeJestCucumberAvaPlain CSSSASS/SCSSLESSCSS ModulesAphroditeWebpackGruntGulpBrowserifyBowerNative AppsReact NativeCordovaPhoneGapNativeScript
Meteor
-1
6
5
-1
0
0
-4
8
1
4
5
5
1
1
3
2
-3
8
9
14
3
4
100
7
7
4
9
2
1
1
0
5
-1
-1
3
4
1
2
0
2
1
3
5
2
7
10
6
5
FeathersJS
-3
2
1
-1
1
4
-1
4
-1
2
3
7
1
4
10
5
0
4
7
10
10
14
7
100
24
4
0
3
0
3
4
2
6
1
0
0
3
11
4
-1
-1
2
-2
1
7
4
2
7
DoneJS
-1
-2
1
0
1
2
1
1
1
2
8
8
4
0
9
6
-1
3
5
7
14
10
7
24
100
7
4
0
1
4
4
3
4
1
0
2
4
11
1
1
2
3
1
1
5
4
2
8
MERN
1
10
2
-1
4
2
1
19
-1
1
0
2
1
17
6
6
5
8
9
5
5
3
4
4
7
100
9
12
4
13
7
1
10
0
5
2
8
6
15
-1
4
4
-3
3
12
-1
0
0
MEAN
8
9
1
14
-5
-3
-1
-1
36
22
1
0
5
-2
0
-1
10
13
2
1
2
1
9
0
4
9
100
12
17
-4
0
4
-1
4
9
10
1
0
3
13
17
7
14
6
1
12
10
8

Note: “user” defined as people who picked “I've used it before, and would use it again”. Phi coefficient values go from -100 to +100, darker red indicates stronger positive correlation, darker blue indicates stronger negative correlation.

Meteor seems to play well with Apollo (a back-end solution based on GraphQL) and Cordova (a tool to build mobile applications). Strangely enough, ES6 got a low score despite the full support provided by Meteor latest releases.

The MEAN stack plays well with Angular and Angular2, and therefore Typescript. We can see also connections with Bower, Gulp and Grunt, which may bring up memories for some of us.

On the contrary, the MERN stack connects to React, Redux and Webpack. These three technologies are often called "the modern stack" to build web application… but who knows if it will still be true in 2017 ?

The testing landscape is just as fragmented, with MEAN users choosing Jasmine while MERN users prefer Mocha.

Recommended Resources

Presented by Egghead.io

Getting Started with Express.js

Ben Clinkinbeard
This series will guide you through the first steps of using Express for building your own applications.
Thanks to our partners for supporting this project. Check them out for more awesome programming courses!

On a scale of 1 to 5, how happy are you with your current full-stack solution?

Show:
  • Percents
  • Numbers

44% of people who used a full-stack framework are happy with their solution (4 or 5 points on the scale). We can assume that they enjoy how quickly these frameworks let them build web applications.

34% of people who used a full-stack framework have a neutral point of view, so it seems that there is still room for improvement.

The remaining 21% who have a negative feedback may have been disappointed by things like “too much magic” (I am looking at you Meteor!) or “too many things to wire together” (something often heard about Redux).

It's important to note that Meteor used to be a unique solution of its own, apart from the rest of the NPM ecosystem with its own packaging system and its own templating engine. But things have changed since the 1.3 release, and it's now possible to build full-stack applications using React, ES6, and NPM modules without any problem.

We are still waiting for the “killer solution”, but there are so many moving parts in the JavaScript world that assembling the best elements to create a solution that covers all use-cases looks like mission impossible!

About the Author

Michael Rambeau

JavaScript developer and creator of Bestof.js, a platform that provides insights and resources about JavaScript libraries.