React, being just the view layer, requires additional libraries which you generally tend to piece together yourself, however, there are many boilerplate projects available that have all of this ready to go out of the box, the React Starter Kit being one of them.
The killer features of React are ‘universal rendering’ and ‘React Native’.
Google haven't had the easiest of paths upgrading Angular from 1.x to 2.0 and 2015 saw Angular's popularity decline. Some members of the community weren't overly happy with the direction Google were taking the framework as it's quite a departure from Angular 1.x. This initial shock caused many to look elsewhere. Also, the author of Durandal joined the Angular 2.0 team in 2014 only to resign a few months later to continue work on Aurelia, the successor to Durandal. However, Angular is in heavy use in many organisations and a lot of the design decisions for Angular 2.0 were as a result of them listening to these users, which is always to be encouraged
Angular 2.0 embraces ES2015, Typescript (which is optional) and takes the component approach much like other frameworks mentioned here. Angular drops many of the concepts introduced in 1.x (such as $scope) and simplifies many other elements, such as directives. A big focus for the Angular team has also been mobile performance, so it's no surprise to hear that The Ionic Framework has committed to adopting Angular 2.0. We can also expect the MEAN stack to upgrade once Angular 2 has been officially released.
Overall, I think Angular will continue to get stronger and possibly strengthen its place within the enterprise upon the release of 2.0. Fullstack developers may also find it beneficial to build both their web & mobile apps using the same frontend framework, possibly increasing code-reuse due to the component nature of v2.0.
Vue.js is a front-end framework that's very easy to get started with, yet under-the-hood lies a very powerful framework. For starters, the documentation is fantastic and follows a natural learning path. Vue.js takes the best parts of many other frameworks and bundles them up into a cohesive, digestible whole. Much like React, Vue.js advocates single-file components and unidirectional communication between components to make it easier to maintain application state (store pattern with immutable state). Unlike React, Vue makes it much easier to get started thanks to an official scaffolding tool -Vue-cli. We can even use other preprocessor languages within our single-file Vue components, such as Jade & Stylus. Unfortunately there's no server-side rendering solution just yet, and while Vue performs fantastic on mobile, it doesn't have a large team behind it like Angular, Ionic or React do.
For the longest time the only viable fullstack framework was Sails.js, closely modelled after Ruby on Rails. Sails is still a great framework, but we now have some new contenders.
Let's begin with this framework as there has been a lot of Internet Drama around Sails and Trails lately. Trails is the work of Travis Webb and his team, spearheading a modular web framework that allows you to swap out components (even the server). This architecture also allows you to easily extend your app with reusable trail-packs.
Travis was a core-contributor to the Sails.js project but was removed by Mike McNeil, the BDFL of Sails. Both parties hadn't managed to settle their dispute in private and it was instead fought on Hacker News, in Github issues, on Twitter etc. Yikes. Regardless, just to be clear, Trails is not a fork of Sails but is in fact a complete re-write and takes full advantage of ES2015. v1.0 is scheduled for release in April, 2016 and from an initial look, it should be very familiar to anyone who has used Sails in the past.
Nodal is brought to us by Keith Horwood and aims to be an easy to use framework for creating REST APIs. While this isn't as fullstack as it initially claims to be (server-side rendering isn't a priority) and it uses an unsupported templating language DoT.js, Keith's made some great progress allowing developers to create REST APIs very easily, primarily through the use of code generators.
Nodal is built from the ground up using ES2015. Keith was unhappy with the lego-style approach to building web applications with node.js and wanted something with a cohesive look and feel across the stack that made him as productive as possible. It's also worth mentioning that Nodal uses Postgres for data persistence. Overall, this is a great framework with a very active community.
If you've ever used Laravel, a popular PHP web framework, then you'll feel right at home with Adonis. Adonis embraces the architecture & design patterns Laravel advocates and brings them to node.js like no other full stack framework. Utilising ES2015 generators, proxies, Service Providers, Inversion of Control containers and a powerful Active Record influenced ORM called Lucid, Adonis certainly does bring a lot of functionality to the table.
This framework favours SQL databases over NoSQL solutions, something that's starting to become a lot more common now that PostgreSQL has great JSON support.
While Adonis is very young, it has a lot of potential - especially for attracting beginners as its documentation is quite thorough. Experienced developers will also appreciate the architecture choices Adonis has made with regards to building & maintaining large applications.
This framework is best suited to those who are not just interested in building stateless REST APIs (which it can do quite well), but those who also wish to do server-side applications. Most frameworks which focus on being a REST API back-end tend to fall down in the server-side rendered department and Adonis knows this.
Strapi is a very interesting framework which focuses on the construction of REST APIs. It's built on top of Koa and contains many features out-of-the-box that a typical developer would need, such as a user management system, JWT authentication, file upload and email support and even supports GraphQL.
But what makes this framework particularly interesting are the accompanying web apps; an admin dashboard that comes bundled with your project and an online tool called Strapi Studio.
The admin dashboard allows you to manage the users and data within your app, where as Strapi Studio allows you to build your API via a web interface and the resulting code is synced down to your computer - very cool stuff.
At the moment Strapi uses Waterline for its ORM, but is in the process of switching to a SQL-only ORM, most likely Sequalize.
Keep an eye on this framework as it has a very passionate team of Parisians behind it.
What do you think? What's your preferred stack? Have you played with 3ree or other such stacks? Let us know in the comments, thanks.