Main image of article 5 Backend JavaScript Frameworks Experts Love

When it comes to web development, JavaScript is the engine that powers the web. While HTML and CSS handle the styling and data presented on a page, JavaScript governs websites’ scripted behavior, from loading and reloading new page content without totally refreshing the page, to animating page elements, to validating what users input into web forms. 

Over time, JavaScript’s popularity has caused a groundswell of frameworks to pop up. It seems that every week brings a new framework for JavaScript developers, each promising to be better than the next. Because millions of websites rely on third-party JavaScript libraries and frameworks, there’s unending demand for such things. 

We’ve already detailed some of the most popular front-end JS frameworks, but what about the backend? While some frameworks overlap, it’s better not to conflate front and back end development, especially with something as critical as JavaScript. For example, JavaScript is used quite often with server-side and non-browser applications, which demands an entirely different way of thinking on the part of developers.  

We queried a few experts on which backend frameworks they felt were worth your attention; here are their answers.

Next

Ian Wilson, a software engineer at OneSignal, notes he was originally enamored with Node and Express, but quickly found favor with Next:

"The Next framework blurs the line between frontend and backend in such a way that seems a little odd at first, but ultimately makes sharing JavaScript code across the project very easy. This prevents having to duplicate code in different languages for the same task. Querying a datastore and rendering the client side markup that depends on it almost happens in the same component. Once you learn the basic elements of developing with Next, everything becomes quite intuitive.

"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. 

Express

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.”

Gatsby

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.

Node.js

CEO of Riseapps Vladlen Shulepov tells Dice:

“At Riseapps, the JavaScript backend architecture of choice is Node.js. The first reason we use this architecture would be the fact that you can go full-stack JS with it. This way, it's possible to reuse code on both frontend and backend, and considering we often use React and Vue.js, it's a huge advantage. Moreover, a web app built with JavaScript on both ends loads very quickly and smoothly.

“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

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. 

Conclusion

Most of these technologists who we queried about backend JavaScript frameworks used two or more for bespoke purposes (the most common being a Node-Express workflow). This proves there’s no single “silver bullet” solution for backend JavaScript, and that your mileage will always vary with use and your needs.

There are plenty of other backend frameworks left unmentioned here, which is a testament to the strength of the JavaScript framework ecosystem. Examine your specific needs, and we’re sure one or more will suit you perfectly.