What is NX?

Overview of NX

Project Source Code

Get the project source code below, and follow along with the lesson material.

Download Project Source Code

To set up the project on your local machine, please follow the directions provided in the README.md file. If you run into any issues with running the project source code, then feel free to reach out to the author in the course's Discord channel.

Lesson Transcript

  • [00:00 - 00:27] Okay, before we try to learn a lot is NX, I want to go to the past when everything on frontend was a lot simpler. We had simple web pages with a little bit of JavaScript mostly used to detect which browser user is running and so on. You probably noticed that complexity is growing and every year web development allows us to create more complex applications. Our apps evolve.

  • [00:28 - 00:47] We add new features and basically we do things that were previously only possible in desktop apps. After a while we had to create some kind of frameworks to allow us build even more complex applications. So that's why we have Angular, React, View and many many others cool frameworks.

  • [00:48 - 01:17] These frameworks were created by incredibly talented developers. It allows us to build complex applications that are simple from the code side. And guess what? With that cool tools we can build even more complex applications. So complexity is growing even more and it's a continuous process. NX is a set of tools that allow you to manage huge code bases in modern repo approach.

  • [01:18 - 01:30] So you can create, maintain and build applications using modern repo approach. NX works extremely good with Angular. In fact it was supported from the very beginning of NX.

  • [01:31 - 01:57] If you don't know NX was created by X Angular team members, you have to know that right now NX is capable of handling other frameworks as well. And we will demonstrate it in one of the lessons just to let you know what is building what you can use and how awesome it is. I mentioned modern repo approach before. So what is a modern repo? Let's do this with an example.

  • [01:58 - 02:22] Imagine that you're a CTO of tech company. Your company will in future offer five applications. There are some common components like buttons or date speakers or more complex ones like login form. These common components should be the same. So you want to achieve unified look and feel of all five applications. What should you do to make it simple?

  • [02:23 - 02:55] How you should organize your code to make it easy to maintain and at the same time easy to develop. You have two main options. You can keep all applications in separated repositories. You will have five repositories for your applications and probably more for that libraries that are going to be used in those five applications. And it's a lot of repositories . And when you change one thing in one repository, you have to upgrade in other repositories.

  • [02:56 - 03:40] So you have to learn how to manage that. Another way you can do is to keep all five applications and all libraries in the same repository. We call that modern repo. Just before we go to the next lesson, I want to mention NX documentation, which is pretty good. If you're looking for help, just go to nx.dev and you will probably find everything that that you need, no matter if it's Angular, React, or any other kind of framework. What's more, you can extend NX to support some kind of framework that is not supported by default. And everything you need to know how to do this is in documentation.

  • [00:00 - 00:27] Okay, before we try to learn a lot is NX, I want to go to the past when everything on frontend was a lot simpler. We had simple web pages with a little bit of JavaScript mostly used to detect which browser user is running and so on. You probably noticed that complexity is growing and every year web development allows us to create more complex applications. Our apps evolve.

    [00:28 - 00:47] We add new features and basically we do things that were previously only possible in desktop apps. After a while we had to create some kind of frameworks to allow us build even more complex applications. So that's why we have Angular, React, View and many many others cool frameworks.

    [00:48 - 01:17] These frameworks were created by incredibly talented developers. It allows us to build complex applications that are simple from the code side. And guess what? With that cool tools we can build even more complex applications. So complexity is growing even more and it's a continuous process. NX is a set of tools that allow you to manage huge code bases in modern repo approach.

    [01:18 - 01:30] So you can create, maintain and build applications using modern repo approach. NX works extremely good with Angular. In fact it was supported from the very beginning of NX.

    [01:31 - 01:57] If you don't know NX was created by X Angular team members, you have to know that right now NX is capable of handling other frameworks as well. And we will demonstrate it in one of the lessons just to let you know what is building what you can use and how awesome it is. I mentioned modern repo approach before. So what is a modern repo? Let's do this with an example.

    [01:58 - 02:22] Imagine that you're a CTO of tech company. Your company will in future offer five applications. There are some common components like buttons or date speakers or more complex ones like login form. These common components should be the same. So you want to achieve unified look and feel of all five applications. What should you do to make it simple?

    [02:23 - 02:55] How you should organize your code to make it easy to maintain and at the same time easy to develop. You have two main options. You can keep all applications in separated repositories. You will have five repositories for your applications and probably more for that libraries that are going to be used in those five applications. And it's a lot of repositories . And when you change one thing in one repository, you have to upgrade in other repositories.

    [02:56 - 03:40] So you have to learn how to manage that. Another way you can do is to keep all five applications and all libraries in the same repository. We call that modern repo. Just before we go to the next lesson, I want to mention NX documentation, which is pretty good. If you're looking for help, just go to nx.dev and you will probably find everything that that you need, no matter if it's Angular, React, or any other kind of framework. What's more, you can extend NX to support some kind of framework that is not supported by default. And everything you need to know how to do this is in documentation.