We queried a few experts on which backend frameworks they felt were worth your attention; here are their answers.
Ian Wilson, a software engineer at OneSignal, notes he was originally enamored with Node and Express, but quickly found favor with Next:
"With Next we get the same ease of setup that we have with projects like create-react-app and some very well-maintained documentation. The company that maintains it, Vercel, formerly known at Zeit, has a repository of examples for just about every use case and integration that exists out there. I’m a fan of their platform for deployments as well. Next was practically designed to be deployed with Now, as the API routes and pages you write are turned into lambda functions. Developers can focus more on their application concerns rather than their AWS console — a huge time save in my experience.
"I think I would choose Next over Gatsby or other Node backend libraries because I get a framework that handles server side rendering, easy to setup API routes, and is otherwise a better create-react-app. They’re all good in different ways but my preference for deploying with Now seals Next for me, especially as the sole developer in many projects."
Initially released in October 2016, Next.js (currently up to v.9.5) is pushed as a great framework for everything production-related, from TypeScript and built-in CSS support to code-splitting and bundling.
Kirill Onishuk, full stack web developer at OrangeSoft, tells Dice: “Express.js is an excellent choice for creating web applications and server APIs. Its speed, minimalist design, and flexibility provide all of the necessary features for writing simple or complex applications. Its capabilities are easily expanded by installing the required npm packages, making it possible to solve absolutely any problems. Express provides a layer on top of node.js, which does not limit its capabilities, so we can efficiently access the functions of the node.js as well.”
It is suitable, Onishuk added, “for writing applications with server rendering because Express supports a large number of template engines (for example, pug and handlebars). For API development, it contains intermediate handlers and many HTTP service methods.”
Avi Wilensky, Founder of Up Hail, noted: “With Gatsby, no server is required since the pages can be built on the developers local machine, and deployed to an object store and CDN (ie. AWS S3 and Cloudfront). The architecture saves on cost, complexity, is secure, and ensures quick performance.”
Gatsby is also scalable, with a massive library of over 2,000 plugins available. Based on React and GraphQI, Gatsby is best used to create fairly static websites with services attached (via its plugins, of course). Keep in mind that Gatsby does not perform server-side rendering—this keeps sites built with Gatsby lightning-fast, but it can also be limiting.
CEO of Riseapps Vladlen Shulepov tells Dice:
“The next reason would be the suitability of Node for real-time applications, especially those for communicating. As we build many apps that include messaging and calling functions, a framework that makes software instantly responsive is crucial. Additionally, apps developed with Node.js can handle multiple user requests well.
“Finally, this JS architecture allows building scalable applications. Due to the nature of this framework, software created with it is streamlined and can be scaled to fit the new requirements easily.”
Node.js has a variety of uses for developers of all types. It’s particularly useful in the context of AWS, where you can use it to spin up EC2 instances. Companies ranging from IBM and Microsoft to Netflix and Walmart all rely on it as part of their infrastructure and web-server work. If you want to work for a big company that heavily leverages cloud infrastructure, in other words, you should learn it.
Meteor is another framework that’s also a bit more like a platform. Christian Fritz, Founder and CEO of BibBase, gives a great rundown:
"Meteor comes with a package system, build and deploy features, as well as testing support. While some its aspects are shared with other frameworks like next.js or gatsby, it is still unique in many key ways.
"Data synchronization in Meteor uses their proprietary DDP protocol. In a nutshell, DDP selectively synchronizes collections in two mongo databases: the one on the server, and the minimongo database on the client. This frees the developer from writing API code for transmitting data between client and server, as I would using Express, and it does so very elegantly: It only sends patches, so there is no repeated data being sent unnecessarily, and it implements reactive behavior on the client such that when new data arrives the page updates reactively, using either React or another reactive framework (Vue, Angular, Blaze). While many people now use GraphQL to minimize writing API code, the live and reactive feature of the data "just being there" still sets Meteor apart. This is perfect for any web application where clients create or change or content, as that data will be shared seamlessly with other users in real-time and with minimal effort by the developer.
"The ability to have packages that contain both a client and a server portion is the other feature I have not found in that form anywhere else yet. The best example of this feature matters is account management. Normally, a developer needs to choose a front-end library and a back-end library for authentication and user management, and then needs to make them work together. This usually requires learning a bit more about both of the chosen libraries than the developer would like and there are many pitfalls. With Meteor this is simple. For instance, if you add the 'accounts-password' package, you get a user database with (hashed) passwords on the server, and the required UI with login/signup/forgot-password/etc. features on the client, and all the communication is already taken care of. Equally easily, you can add additional packages like 'accounts-google' for Single-sign-on using Google (and similar for Facebook or other social logins)."
Meteor is written in Node.js, and it integrates with MongoDB, the popular cross-platform database program, which makes it particularly useful for technologists who are building corporate products.