Discovering NestJS in a jiffy

As we said in the introduction of this chapter, we will be using NestJS as the base building block for the backend of the new version of LyricsFinder.

Let's quickly introduce NestJS and explain why we have chosen it over the numerous alternatives:

The official NestJS logo

There are many ways to create backend applications based on Node.js. Of course, our goal is to leverage TypeScript wherever possible in the context of this book.

For instance, we could have used the standard Node.js SDK or the Express library (https://expressjs.com) to get higher-level abstractions. The first option would've been too involved and would have required us to explain many lower-level primitives. The second was more approachable, but we saw a great opportunity to introduce a modern and really appealing solution: NestJS.

NestJS (https://nestjs.com) is an open source (MIT licensed) framework that can be used to build server-side applications on top of Node.js. NestJS fully supports TypeScript (it is actually written in TypeScript itself), functional programming, and functional reactive programming styles.

It provides everything that you would expect from a framework: abstractions, reusable building blocks, patterns, tools, guidance, and so on. Also, NestJS is extensible and already has quite a lot of plugins, including an official one for GraphQL (which we will cover later in this chapter).