😎by Awais

Join developers already building Node.js CLIs


Node.js: Installation via n

How to install Node.js via n

NodeCLI.com: After building hundreds of developer automation tools used by millions of developers, I am teaching exactly how you can do it yourself with minimum effective effort. Learn to build Node.js & JavaScript based CLI (Command Line Interface) apps & npm packages. Automate the grunt work, do more in less time, impress your manager, make more salary, and help the community. I'm sharing it all in this step-by-step 100-videos course.
You had me at "Automation"

So far, we have reviewed nvm, the node version manager, which is one of the most popular choices for node version management. Only. It is a bit slower, which is not something I want.

And then there are two good options. nodenv and asdf with asdf nodejs plugin. Well, you can use any of these tools, there's one more tool I want you to look at. And from Twitter survey, this was the second most popular tool being used by developers.

As you can see it has about 13,000 stargazer so it is quite much popular. It is another node version management tool and is actually the tool that I personally use for managing my node version. While I have used asdf nodejs for quite some time, I've recently switched to node version management with n and there are a couple of reasons why. n is a nodejs version management tool with no subshells, no profile set up, no convoluted API.

It is just really an extremely simple. Yes, it has some ins and outs, but for a basic use case for nodejs version management, I really like it. So how about we go ahead and set this thing up.

If you have node or npm installed, you can just use npm to install n. npm install hyphen G for global, and then n. If npm is not available, if you haven't downloaded a node at all, you can use curl and then run it. Or you can use my personal favorite tool called Homebrew to install.

And one more step that I would want you to take a look at is avoid using sudo for, you know, global installs and whatnot. When you're installing global modules, nodejs modules, you keep getting these permission errors. You have to join sudo npm install and whatnot.

To avoid those, you can actually run these particular two commands to own the folder of where n is going to install in your node modules and those versions that n manages and different nodes versions. And then if you want, you can also take ownership for all these installed destinations as well by running this particular command. So how about I go ahead and review this particular node version manager so you can understand it a little bit.

So I'm in my terminal. BTW I don't use the optional macOS Terminal that comes with it. I use iTerm2.

You can go to iterm2.com and basically download this awesome macOS terminal emulator. If you go to the features tab, you can actually go ahead and take a look at all the advanced features this iTerm2 terminal emulator has that the local macOS official terminal just does not have. For example, the ability to split panes and Hotkey Window, translucent windows and whatnot.

So let's head over to iTerm2. Since I already have it installed, I can actually type n with capital V to see the version of n I haven't started. If you type n help, you can see all the commands that you can run in this tool called n.

By typing n latest, we are going to be installing the latest or the Current version of nodejs. Let's try, let's try it out. n latest. It went ahead and installed the version 14.4.0. 14.4.0 which is actually listed as the current version of nodejs.

Since latest is an easier term to remember, it is calling it the latest version of nodejs. You can also type in current to install the current version of nodejs. One thing you might have noticed that it is not installing anything for me, just switches to a different version of nodejs for me.

And to use the stable version, I can definitely call it n lts. Which is the version 12.18.1, just as listed on the official website of nodejs. How I remember these two things is that there is a stable version without any breaking API changes.

And then there is a Current version with all the new features and breaking API changes. So whenever I want to switch to these different versions, I type n current, and it switches to the latest available current version or, n stable which switches to the active LTS version. If I want to switch to any particular version of nodejs, for example, let's say I want to go to the maintenance version of nodejs, go to releases.

I want to go to this maintenance LTS version, which is version 10 of nodejs. For that I'm going to type n 10. And this is going to go ahead and install the version 10 of nodejs the maintenance release of nodejs.

So there you go. Right now, I'm using nodejs version 10, and I can actually prove that by typing node hyphen V and I'm using version 10. Now, if I switch to n current and run the command again, I'll be using the nodejs version 14, the current version.

I can again, go back to node stable version. Let's type node hyphen V and now I'm on nodejs version 12. See how easy it is to switch between different versions of nodejs by this node version manager called n.

It makes it super easy. Just go to a particular folder and whatever, uh, you know, nodejs version you want to use, just type it name, for example, I want to use nodejs 6. Just n and then space 6.

It is going to go ahead and install that particular version of nodejs for me. And now that I have a couple of nodejs versions installed, how about I switch between these quickly? If I type n press enter, it is going to show me all the nodejs versions that are installed in my system right now that I can switch to without even downloading them again.

I can switch to the stable version here and now I'm on version 12. What if I want to remove a particular, you know, cache nodejs version I have. Let's see how I can do that.

I'm typing n help and let's take a look how to remove something. So there are a couple of commands. n prune removes all the downward versions except the one currently installed, or n rm space version, which removes the particular given. Now let's try these out.

So I'm going to remove version 6. And now I am going to type n and see version six has gone. Okey-dokey.

Now let's type and press center. As you can see, I have three nodejs versions installed in my system. And right now I'm using nodejs version 14.

This is the maintenance LTS, longterm support maintenance release. This is the active LTS, and this is the Current version. Right now, if I type n prune.

It is going to go ahead and delete all the extra versions that I had installed, except for the one that I'm using right now. So now go ahead and let's install the stable version again and switch to it. There you go.

See how easy it is. I believe n makes it really easy to manage different version of nodejs. And there is no extra penalty of using and because there is no shell scripts to be installed.

Nope. Nothing in your, you know, bash profile or anything. It just works when you want it to work.

So if we take a look at how it works section and basically downloads a prebuilt node package and installs a single prefix in this particular directory usr/local. And then it overrides the previous version. The downloaded versions are actually kept in a cache folder for reinstalls.

So you don't have to download them again and again, and that it makes switching to different nodejs versions really easy. There are a couple more ways to use the downloaded nodejs versions without reinstalling, or without switching to that particular version. For that, you can basically use the run or execute command.

Let's try it out. If I type node hyphen V you can see that I am on the version 12 and nodejs. Whereas if I type n, I have nodejs 14.4.0 installed as well.

So if I type n run 14.4, and then I give it another command to run node hyphen V, I can see that while I'm using nodejs version 12, I can actually use this particular version to run this particular command. So I'm in the nodejs REPL for nodejs version 14.4. And now basically I can run any command I want.

And the last thing that I want you to look at is preserving npm. So what happens is a node install actually comes with a packaged npm install. Sometimes it is the node package manager, npm version, previous to the one you are using right now.

But you may wish to preserve an up to date, latest npm version or npx version using the preserve flag. Your system must have this rsync, which is already installed on a macOS, which is required by this preserved flag. So let's imagine that you install the latest npm.

And when you switch to nodejs version 8. If you type hyphen p, which is an alias for hyphen hyphen preserve, what it is going to do is it is going to install the version eight of nodejs, but the npm version is going to remain the same. So all of your installed npm libraries are probably going to remain the same.

This is sometimes quite useful. So what I do is I export this N_PRESERVE_NPM_1 in my bash profile. So I don't have to even type hyphen p.

If you want, you can also export this particular N_PRESERVE_NPM is equal to 1 variable so that you don't even have to type hyphen P while installing different version of nodejs. It will just go ahead and preserve whatever NPM version you were using. And that is pretty much about it.

Or if you're already convinced buy now at 50% off!

Ahmad Awais
Meet the author?!
Ahmad Awais

🎩Award-winning GitHub Star #OpenSourcerer 🎩 Google Devs Expert Web DevRel 🎩 Node.js Community Committee Outreach Lead (Node.js top-level committee voting member) 🔥 Author of various open-source dev-tools and software libraries used by millions of developers worldwide (including engineers at Google, Netflix, Amazon, Microsoft, Intel). 📣 Eloquent speaker (TEDx talk, NodeConf, React Live)Awais has been listed as #1 JavaScript Trending Developer worldwide by GitHub. Check out his work on corona-cli, Shades of Purple theme, wp-continuous-deployment, cgb, Emoji Log, and many more open-source projects on GitHub.🌟 Regular WordPress Core Developer ✍️ Member of SmashingMagazine Experts Panel, Featured/published author at CSS-Tricks, Tuts+, Scotch.io, TorqueMag, SitePoint. Connect with Awais on twitter @MrAhmadAwais.

Get Started Now!

A whole new workflow to Code. Build. Publish. Automation CLI applications. A course for both absolute beginners and advanced developers. I assure you this ridiculous hard work (10 months of work) is worth its weight in gold. It's the course I wish I had. Theory + Tutorials + How to's + 22+ production quality CLI projects. I'll even teach you how to build npm-modules. Got questions? Tweet me at @MrAhmadAwais →


The essentials package


Price excludes tax VAT/GST

✅ACCESS:Six Modules

✅VIDEOS:All Videos (~10 hours)

✅COMMUNITY:Access to Private Discord

📺MODULE #01Node.js Fundamentals

📺MODULE #02Install & Manage Node.js

📺MODULE #03Command-Line Fundamentals

📺MODULE #05Node.js CLI Error Handling

📺MODULE #07CLI Frameworks (prototyping)

📺MODULE #13Extra: Concepts & Talks


All 13 Modules & Everything you need to learn to build Node.js CLI Automation DevTools



Price excludes tax VAT/GST


Save 50% today!


Price excludes tax VAT/GST


TEAM ACCOUNTS I have great discounts available if you're buying for 5+ team members — 50% to 70% off. Apply for the team-discount by letting me know how many team members you have.

Apply for Team discount— GET IN TOUCH WITH AWAIS!

Take Their Word for It

You don't have to take my word for it. Some nice folks have said some nice things! Tweet a testimonial to get listed here →

I bought this course because I'm extremely interesting in building CLIs and want to deepen my knowledge even more. This course is by far the best value for the amount of content I've seen maybe ever. If you're interested in modern development, this is a solid investment!

Nader DabitNader DabitSr. Developer Advocate · Amazon

Suuuuper stoked for this I just picked up my copy of NodeCLI course! I can't wait to take my CLI skills to the next level. Keep up the great work Awais.

Alexander RomanoAlexander RomanoFull Stack Associate App Developer · SKF · Virtually(Creative)

I've been walking through the VSCode.pro power user course by Ahmad Awais and I'm learning a lot! Bought the Node CLI course too, just to brush up. Good stuff.

Kassian Rosner WrenKassian Rosner WrenDeveloper Advocate · Cloudflare
Ex Auth0, Bocoup

I had the chance to go over the course I can say it's brilliant! The amount of work and details @MrAhmadAwais has put into the course is astonishing. Also, it's a subject you don't see that often. Give it a go.

Catalin PitCatalin PitSoftware Engineer at TypingDNA

I am learning a lot from the course. And it's approachable even if you're not experienced with Node.js.

Tommy WilliamsTommy WilliamsSr. Director/Developer · Tempest Tech
Ex Group PM · Microsoft (14yrs)

Awais thanks for Node CLI course! This looks like a great set of resources! I love the intro video, top notch!!

Scott SpenceScott SpenceWeb Developer · Karmarama UK
More Testimonials

What Do You Get in This Course?

From absolute beginners to advanced developers, there's something for everyone here. I created this course as the go-to course in the tech industry whenever someone wants to learn automation, publish & maintain their Command Line Tools, and learn from 21+ CLI projects with production-grade CLI & Node module examples.
Node.js FundamentalsMODULE #1

Node.js Fundamentals

In this module, you'll understand why I created this course? Why I make Node.js CLI Apps and JavaScript-based Command-Line DevTools. And this will be a gentle introduction to Node.js fundamental concepts. How come Node.js is so fast? We'll push a dummy Node.js server to its limits. You'll learn how Node.js gets released; the Node.js release-cycle to help you make the best decisions. And a fun video on the difference between npm vs npx.

📺 INTRODUCTION:What, why, who? Node.js CLI ToolsWATCH

📺 NODE.JS:Understand what is Node.js?WATCH

📺 NODE.JS:Node.js: Server Load TestWATCH

📺 NODE.JS:Release Cycle - Current + Long-term supportWATCH

📺 NODE.JS:Difference between npx and npmWATCH

Install & Manage Node.jsMODULE #2

Install & Manage Node.js

You can install Node.js pretty easily. But maintaining different versions of Node.js for each project, changing between Active LTS, Maintenance LTS, Current version, and keeping up with node modules for each can be quite a task. Let me teach you exactly how I do it. We'll compare different options like nvm, asdf, nodenv, and n.

📺 NODE.JS:How to download and install Node.jsWATCH

📺 NODE + nvm:Node.js Version Management with nvmWATCH

📺 NODE + nodenv:Node.js Version Management with nodenvWATCH

📺 NODE + asdf:Node.js Version Management with asdfWATCH

📺 NODE + n:Node.js Version Management with nWATCH

📺 SUMMARY:Node.js Installation & ManagementWATCH

Command-Line FundamentalsMODULE #3

Command-Line Fundamentals

Here I'll take a step by step approach to building and publishing your first Command-Line Interface (CLI) project. You'll create a GitHub repo, an account on npmjs.com (inside your terminal), learn about semantic versioning, and will publish your project. The whole shebang. I'll talk about the readme, keywords, author info, and licensing. Finally, we'll polish the User Experience (UX) of your CLI app by adding colors, welcome-header, & custom alerts.

📺 NODE.JS CLI:Building & publishing your first CLIWATCH

📺 NODE.JS CLI:Creating GitHub and npmjs.com accounts02:21

📺 NODE.JS CLI:Difference between Bash vs Node04:34

📺 NODE.JS CLI:What is #! or shebang or hashbang?03:18

📺 NODE.JS CLI:npm link with package.json bin command03:21

📺 NODE.JS CLI:npm adduser, npm whoami, npm publish02:41

📺 NODE.JS CLI:npx yourname to run the CLI5:03

📺 NODE.JS CLI:Semantic Versions major.minor.patch06:48

📺 NODE.JS CLI UX:How to clear-any-console?12:43

📺 NODE.JS CLI UX:Welcome Header CLI introduction07:12

📺 NODE.JS CLI UX:Author info, readme, keywords, & license06:31

📺 NODE.JS CLI UX:Everything about CLI colors with chalk17:23

📺 NODE.JS CLI UX:Custom styled CLI alerts08:21

Build a Node Module PackageMODULE #4

Build a Node Module Package

Have you ever wondered how to build an actual Node module or npm package? In this chapter, I'll teach you how to build a Node module from scratch. We'll publish a real-life, production-ready npm package. This will help you create more FOSS (Free & Open Source Software) while building Node.js CLI applications.

📺 NODE-MODULE PKG:Building & publishing your first node-module16:11

📺 NODE-MODULE PKG:Introduction: npm module pkg?01:38

📺 NODE-MODULE PKG:Architecture, files, & configuration09:54

📺 NODE-MODULE PKG:npm module dependencies01:52

📺 NODE-MODULE PKG:Coding a Node.js module10:51

📺 NODE-MODULE PKG:Custom options & Default options04:42

📺 NODE-MODULE PKG:JavaScript destructuring03:68

📺 NODE-MODULE PKG:JavaScript spread operator01:24

📺 NODE-MODULE PKG:JavaScript template literals05:12

📺 NODE-MODULE PKG:Testing npm node modules03:35

📺 NODE-MODULE PKG:Refactoring a Node module06:43

📺 NODE-MODULE PKG:Publishing node-modules06:34

Node.js CLI Error HandlingMODULE #5

Node.js CLI Error Handling

Learn everything I know about handling errors in Node.js Command-Line Applications. You can build CLIs that run on specific versions of Node.js. Gracefully notify your users to update their node version. Even handling errors that are unexpected and unhandled. I'll also share my custom error handling module that you can use right away.

📺 ERROR HANDLING:Check the Node.js version05:41

📺 ERROR HANDLING:CLI handle the unhandled errors03:50

📺 ERROR HANDLING:Refactor your CLI with an IIFE09:57

📺 ERROR HANDLING:Node process custom error handler11:53

📺 ERROR HANDLING:(IIFE) Immediately Invoked Function Expression03:12

Advanced Node.js ConceptsMODULE #6

Advanced Node.js Concepts

The theory is boring. I know. Yet without knowing all of the concepts in this chapter, you'll find yourself struggling with complex automation projects. We don't want that. That's why I'm teaching just enough so that you can understand Node.js with minimum effective-effort.

📺 THEORY:Node.js Event loop (the right way)09:12

📺 THEORY:Node.js process & paths01:16

📺 THEORY:Node.js process.cwd() paths22.93

📺 THEORY:Node.js process.exit() strategy01:16

📺 THEORY:Node.js process.env info00:33

📺 THEORY:Node.js process.argv arguments01:12

📺 THEORY:Node.js process stdin stdout stderr04:09

📺 THEORY:Node.js parsing CLI arguments06:57

CLI Frameworks (quick-prototyping)MODULE #7

CLI Frameworks (quick-prototyping)

You can code a Command-Line Interface all by yourself. To quickly prototype a production-ready CLI with minimum effective-effort, you can use one of the many available CLI frameworks. I'll review a couple of excellent CLI frameworks. And we'll start building out the Command-Line Interface based on top of meow a minimal CLI Apps helper.

📺 FRAMEWORKS:Node.js CLI frameworks08:14

📺 FRAMEWORKS:Node.js CLI flags, inputs, help05:04

📺 CLI HELPER:meow: Introduction, what & why?07:06

📺 CLI HELPER:meow: Creating help command03:38

📺 CLI HELPER:meow: CLI Refactor (production-ready)07:46

📺 CLI HELPER:meow: Help command refactor04:42

📺 CLI HELPER:meow: Help command UX with colors03:06

📺 CLI HELPER:meow: CLI version printing01:29

📺 CLI HELPER:meow: CLI flags & Flag aliases02:01

📺 CLI HELPER:meow: CLI flag detailed schema05:12

📺 CLI HELPER:meow: CLI flag minimal output03:28

📺 CLI HELPER:meow: CLI flag controlled clear screen01:58

📺 CLI HELPER:meow: handle missing command01:17

📺 CLI HELPER:meow: an overview of the new CLI01:19

CLI Data Fetching & User ExperienceMODULE #8

CLI Data Fetching & User Experience

Mostly when building Node.js CLI Command-line Apps, you have to fetch data from an API; a remote resource. In this module, I teach how you can fetch data with node-fetch and axios. That's not all, when data is being fetched there's nothing on the CLI screen. We fix that weird user experience by introducing loading spinners that can succeed, fail, warn, or stop. Together we will improve our first CLI to fetch blog posts from our blogs.

📺 DATA FETCHING:Fetching data in a Node.js CLI09:19

📺 DATA FETCHING:Fetching data with node-fetch04:45

📺 DATA FETCHING:Fetching data with axios04:14

📺 DATA FETCHING:CLI data fetching errors handling05:39

📺 DATA FETCHING:CLI fetching latest blog posts14:16

📺 DATA FETCHING:User experience loading animation03:46

📺 DATA FETCHING:User experience controlled spinners07:04

CLI User Input & OutputMODULE #9

CLI User Input & Output

Take input in your CLI from a user, process it, validate it, and provide a beautiful prompts interface. Remember the previous value in an input field (CLI temporary storage). Hide the display of a secret input like a password. Do it all with minimal effort. Some example input prompts include: AutoComplete, BasicAuth, Form, List, MultiSelect, Numeral, Password, Select, Sort, Snippet, Toggle, & custom prompts.

📺 CLI I/O:How to take user input in a CLI02:43

📺 CLI I/O:Taking user input with enquirer09:33

📺 CLI I/O:Tens of different enquirer prompts07:00

📺 CLI I/O:Ask questions, MultiSelect, fill forms07:00

📺 CLI I/O:BasicAuth, Sort, AutoComplete, Toggle07:00

20+ CLI ProjectsMODULE #10

20+ CLI Projects

In this module, you'll learn to build 20+ different Node.js CLI Command-line projects. From simple things like a todo CLI to complex applications like pre-configurable and persistent memory with temporary storage for hints. We'll create progress bars, CLIs to execute commands, CLI Graphs, CLI Charts, and even Hollywood movie-like Hacker Dashboards all in your Command-Line. I'll also teach how to build project scaffolding or template generating CLIs like create-react-app. Caution: This is extremely fun for developers!

📺 CLI PROJECT:Hello & Scopped Package04:22

📺 CLI PROJECT:Automatically Generate CLI Help11:21

📺 CLI PROJECT:CLI To do - manage project todos 23:12

📺 CLI PROJECT:CLI to resize & optimize images14:03

📺 CLI PROJECT:CLI Quiz - Take a quiz02:38

📺 CLI PROJECT:CLI Survey - Fill a survey04:05

📺 CLI PROJECT:CLI to get WiFi Password04:21

📺 CLI PROJECT:CLI Remember-Me - persist config07:04

📺 CLI PROJECT:CLI Persistent data & temp storage07:04

📺 CLI PROJECT:CLI Pre-configurable like Babel & prettier05:30

📺 CLI PROJECT:CLI Progress Estimation & Progress bars07:27

📺 CLI PROJECT:CLI Display Fun Figlet printing03:41

📺 CLI PROJECT:CLI Project Update Notification04:05

📺 CLI PROJECT:CLI Graphs & Charts, Hacker dashboards06:32


📺 EXECUTE:CLI commands with child_process spawn03:50

📺 EXECUTE:CLI commands with child_process exec02:23

📺 EXECUTE:CLI commands with child_process exec p02:39

📺 EXECUTE:CLI commands with execa01:55

📺 EXECUTE:CLI commands with shelljs01:43


📺 SCAFFOLDING:CLI Generate Boilerplate02:27

📺 SCAFFOLDING:Scaffolding like create-react-app02:27

📺 SCAFFOLDING:CLI Project Scaffolding 04:27

📺 SCAFFOLDING:CLI Dynamic Template generation11:27

📺 INCEPTION:CLI that generates CLIs05:42

Production-grade CLI ProjectMODULE #11

Production-grade CLI Project

You learned how to build CLI Command-line tools. You went through 21+ projects. But what does an actual production-grade quality CLI project look like? You're in luck because I decided to create a CLI that can create CLIs. Sort of like CLI Inception. This module teaches exactly that. Learn how to build a production-ready CLI scaffolding project.

📺 PROD-READY:Create Node CLIs05:42

📺 PROD-READY:ncli: taking user input05:17

📺 PROD-READY:ncli: input refactor to ask.js module02:59

📺 PROD-READY:ncli: input refactor ask.js with questions01:48

📺 PROD-READY:ncli: output UX refactor with colors03:39

📺 PROD-READY:ncli: improve template with dynamic data09:49

📺 PROD-READY:ncli: template generation UX refactor06:04

📺 PROD-READY:ncli: validate user input cancellation02:05

📺 PROD-READY:ncli: graceful forced CLI cancellation02:51

📺 PROD-READY:ncli: optional command validation FTW08:17

📺 PROD-READY:ncli: fix potentially dangerous dir exists routine03:39

📺 PROD-READY:ncli: improve user experience, loading spinners06:04

📺 PROD-READY:ncli: persist in history to remember the last input12:49

CLI Debugging & CLI Unit TestingMODULE #12

CLI Debugging & CLI Unit Testing

Writing CLIs is a lot of fun. Sadly, though, it's not as much fun to test and debug a CLI if something goes wrong. In this module, I'll equip you with my go-to debugging strategies. We'll study the latest techniques like log points in VSCode. You'll write unit tests for all the new released versions of your CLI tools are tested automatically. Super helpful.

📺 UPDATES:Check and update npm dependencies05:35

📺 DEBUGGING:How to debug a Command-line tool05:42

📺 DEBUGGING:VSCode breakpoints & logpoints for debugging04:25

📺 UNIT TESTING:What is unit testing?03:41

📺 UNIT TESTING:Creating a dummy CLI for unit testing02:34

📺 UNIT TESTING:Write excellent unit tests for CLI Apps10:44

Extra: Concepts & TalksMODULE #13

Extra: Concepts & Talks

I've used modern JavaScript in this course. But I have kept it all beginners-friendly by recording extra videos on what these new JavaScript concepts look like. I'll also keep adding more CLI projects, live-streams, and relevant videos to this ever-green Node CLI course.

📺 EXTRA:Basics of Node.js03:42

📺 EXTRA:How does Node.js release-cycle work?03:11

📺 EXTRA:(IIFE) Immediately Invoked Function Expression09:57

📺 EXTRA:Reviewing popular Node.js CLI frameworks08:14

📺 EXTRA:Difference between npm vs npx commands?04:47

📺 EXTRA:Publishing @name scoped npm packages04:22

📺 EXTRA:What are JavaScript template literals04:31

📺 EXTRA:FOSS (Free & Open Source Software) best practices05:31

Start Building Node CLIs

Frequently Asked Questions?!

You got questions? I got the answers!
Discounts for Teams, Students, Purchasing Power Parity? YES! Learning > Money

Discounts for Teams, Students, Purchasing Power Parity? YES! Learning > Money

Yes, yes! I don't want money to get in the way of learning.

TEAMS: I have great discounts available if you're buying for 5+ team members — 50% to 70% off. Feel free to contact me, and I'll set you up with 5/10/…/100+ accounts with reasonable discounts.

PPP: Course too expensive where you live? I am a big believer in purchasing power parity. get in touch with for PPP discounts.

WORKSHOPS: You can also get in touch with me for workshops or conference talks on this topic.

STUDENTS: Email me any sort of schooling proof, i.e., uni/college card, Bootcamp ID, and I'll send you a student discount.

How does it all work? What are the videos like?

How does it all work? What are the videos like?

Oh, that. Just buy a package. I recommend the masterclass for the most bang for your buck. Once the payment is received, you get a welcome email with access to my course platform, click the access link, set a password, and stream the course anytime with any device.

The videos are crystal clear, professionally recorded at a whopping 1920x1080 resolution for TrueHD™ 1080p result. I invested over $1000 bucks in my audio setup, no pops, clicks, or weird breathing sounds there. I am actually funny at times. No slides/ppts just the real deal and actual hands-on demos.

Is this for Beginners or Advanced developers?

Is this for Beginners or Advanced developers?

I love to teach, I can't help it, I think it's genetic bug. Both my grandparents and parents grandparents are teachers. So, believe you me — I don't assume anything.

I'll take your hand and walk you through each and everything, the pace is just right, you won't find sleep-inducing material here. So, yeah this course is equally suitable for beginners and advanced developers. You can even slow down the pace to 0.75x and make it go faster to 2x. Easy peasy.

What if I am not happy?

What if I am not happy?

My software and courses are helping thousands of developers become experts at what they do — every single day. If for any reason, you're feeling blue and not satisfied then email me within 14 days of your purchase and I'll refund you. Do mention the email address you bought the course with. Money-back guarantee. Seriously, I want you to learn. That's simple. No question about it.

I've deleted, lost, never received the access email?

I've deleted, lost, never received the access email?

No worries. All of my courses live here → Courses.AhmadAwais.com. So what you need to do is, go to the Forgot your password? link — use the same email address you bought the course with, and you'll get the same welcome access email again — set a new password & login.

One time payment? No monthly subscription?

One time payment? No monthly subscription?

That's true, you pay only once, the videos access never expires. When you're learning with me, I don't want you to feel like you're paying for university or Netflix. It's a one-time investment that pays itself over ten folds. No recurring payments. No expiry dates. Truly learn at your own pace without worrying about any subscription cost.

What theme do you use, font, TV Series you like? What's your mic/video, mac, terminal setup?!

What theme do you use, font, TV Series you like? What's your mic/video, mac, terminal setup?!

I have set up a USES page to answer such questions. Developers often ask me about what theme I use (hint: Shades of Purple), what are my favorite TV shows, macOS apps, terminal workflow, yadda yadda… all of that is listed on this page →

I have moooooaaaaaaar questions?

I have moooooaaaaaaar questions?

Sure. For quick questions tweet @MrAhmadAwais. You can also send me your questions via email if that's your jam. What else?!
Follow Awais on Twitter @MrAhmadAwais to ask more questions

Convinced… Let's do this!

Take Their Word for It

You don't have to take my word for it. Some nice folks have said some nice things! Tweet a testimonial to get listed here →

I bought this course because I'm extremely interesting in building CLIs and want to deepen my knowledge even more. This course is by far the best value for the amount of content I've seen maybe ever. If you're interested in modern development, this is a solid investment!

Nader DabitNader DabitSr. Developer Advocate · Amazon

Suuuuper stoked for this I just picked up my copy of NodeCLI course! I can't wait to take my CLI skills to the next level. Keep up the great work Awais.

Alexander RomanoAlexander RomanoFull Stack Associate App Developer · SKF · Virtually(Creative)

I've been walking through the VSCode.pro power user course by Ahmad Awais and I'm learning a lot! Bought the Node CLI course too, just to brush up. Good stuff.

Kassian Rosner WrenKassian Rosner WrenDeveloper Advocate · Cloudflare
Ex Auth0, Bocoup

I had the chance to go over the course I can say it's brilliant! The amount of work and details @MrAhmadAwais has put into the course is astonishing. Also, it's a subject you don't see that often. Give it a go.

Catalin PitCatalin PitSoftware Engineer at TypingDNA

I am learning a lot from the course. And it's approachable even if you're not experienced with Node.js.

Tommy WilliamsTommy WilliamsSr. Director/Developer · Tempest Tech
Ex Group PM · Microsoft (14yrs)

Awais thanks for Node CLI course! This looks like a great set of resources! I love the intro video, top notch!!

Scott SpenceScott SpenceWeb Developer · Karmarama UK

Wow; the quality of the courses is outstanding. Really great work Awais Awesome work!

Alberto MedinaAlberto MedinaGoogle Developer Advocate · Ph.D. CS

Just grabbed the new NodeCLI.com course from @MrAhmadAwais @NodeCLI. Really stoked to dig into this!

Tre AmmatunaTre AmmatunaSoftware Engineer - AWS SageMaker Studio · Ex Microsoft

How could I resist to NodeCLI masterclass made by Awais?! Since today count me in as a new padawan looking for your wisdom.

Pablo PaulPablo PaulJavaScript Team Lead

Damnnnn! Thanks for the course. It contains useful information even installation video where I usually skip are a lot beneficial.

QuirkyQuirkyJavaScript Developer

Shit, I didn't know that!!!!!!! This tip is life changing to me!!

Zouhir ⚡Zouhir ⚡Edge Microsoft · Google Dev Expert

Today for #devAdvent: the very hardworking @MrAhmadAwais! Awais is a WordPress Core member and TEDx speaker and he recently created a course to help people become VS Code Power Users. If you're using VSCode as your editor, VSCode.pro is a fun/cool resource!

Sarah DrasnerSarah DrasnerVP of Developer Experience · Netlify
Vuejs Core Team · Ex Microsoft

I can't wait to "Code. Publish. Maintain." CLI Automation DevTools with #JavaScript and Node.js. Picked up the Node CLI course.

Frontend DudeFrontend DudeSr. Frontend Developer

Open Source work: "It's very impressive". — Won Automattic Design Award Trophy. The create-guten-block project is an awesome awesome contribution to the community — at AWP Gutenberg series.

Matt MullenwegMatt MullenwegCo-Founder of WordPress

I also just made the decision to move away from PHPStorm to VSCode. I mean, just one year in license fees pays for the VSCode.pro master package and I'll learn from one of the best Just by going through the UI improvements videos, I can already see how the course will help me become #VSCODEpro

Jan KochJan KochMentor at WPMastery

"OMG awesome. How do you find those class names?" — Said in response to a VSCode tip shared by Awais on Twitter.

Dan AbramovDan AbramovCore Dev ReactJS at Facebook

It’s a 5 hour course that teaches you a huge amount of knowledge and after going through it myself, I can state that even as a fairly advanced user of VS Code, Awais taught me some neat tricks that I immediately am integrating into my workflow now.

Benjamin LannonBenjamin LannonVSCode Extensions Developer in NY

I've been using VSCode for a few months and I'm not a power user at all. Thanks to @MrAhmadAwais for creating an amazing course to help me bridge that gap in a short time. I highly recommend his course if you're looking to level up your VSCode game.

Haris ZulfiqarHaris ZulfiqarFounder Avada · Engineer at WDS

If you're looking to expand your VSCode knowledge, I have no doubt this course will be extremely useful. @MrAhmadAwais does great work.

Jeremy EnglertJeremy EnglertCore Contributor ZURB Foundation

Just grabbed @MrAhmadAwais's #VSCODEpro course masterclass. If you use any code editor, make the move. Support Awais :) he's a top guy — does great work. → VSCcode.pro

Mike StottMike StottCore Contributor ZURB Foundation

I love this theme! 🦄 Themes with more unique colors like purple are relatively rare, so it's great to see purple represented here. 😃 It's a fun theme, and it's easy to read! 🙌

Ali SpittelAli SpittelTech Director WomenWhoCode

Kudos to the teacher @MrAhmadAwais for making the #VSCODEpro learning a breeze. I am on the 14th chapter and this is getting as exciting as binge learning. Awais, your hard work is making a student's life easy. You deserve great respect

Raghu VamsiRaghu VamsiSCRUM Master + Front End Dev

I always find him to be an excellent communicator, highly skilled, considerate, and extremely generous. He's a pleasure to collaborate with and he's produced some very impressive public and FREE #OpenSource work for developers to learn and benefit from. In my book, those are some of the best characteristics to have in a person. Awais is highly recommended.

Matt CromwellMatt CromwellPartner/Head Community Impress.org

I've never known someone to create such useful things on a regular basis. Truly impressive sir. I mean it. You just pump stuff out. It's incredible.

Lee PetersonLee PetersonCreative Lead at Rusty Dog Design

I've read over Awais's tutorial a few times and implemented most of it. He's the bee's knees for this kind of stuff. — In ref to the WordPress & Gulp implementation via WPGulp.

Alex ColemanAlex ColemanWeb Designer at LeftSideDesign

This is a gorgeous, high contrast theme that stands out without getting in the way. Especially great for doing developer talks and screencasts and maintained by a supremely dedicated expert in all the VSCode pro tips. The documentation itself is a thing of beauty, too. 5 Stars!

Shawn Swyx WangShawn Swyx WangDev Experience @Netlify · Reactjs

Yes, Awais writes great WordPress tutorials and makes great looking themes and websites, but that's not the only reason I endorse Awais. He is a great community member, he is a core contributor to WordPress and always helpful to other WordPress users. Also, he is a really nice guy, which is important.

Josh PollockJosh PollockLead Dev & Founder CalderaWP

Ahmad has written tutorials for me to publish at Tuts+ on a number of occasions, and I always appreciate his level of expertise both in the subject matter…, and in helping to educate others. I would hire Awais again for… training or consultancy in a heartbeat.

Japheth ThomsonJapheth ThomsonDirector of Hosting at Human Made

I know Awais from his contributions to world wide web. His expertise in web & software technologies and his contributions to various open-source projects make it stand out of the crowd. I highly recommend Awais.

Jabran RafiqueJabran RafiqueTech Lead at Rated People

I'm really impressed with how much you are participating in the WordPress community! It's pretty insane. You're probably one of the most engaged people I have seen, ever. 😀

Stanislav KhromovStanislav KhromovDev at Schibsted Media Group

It is extremely rare that you come across highly skilled talent like Awais! We worked together on several occasions over the years and his efficiency is beyond superior.

Emil UzelacEmil UzelacWordPress Quality Control Specialist

Awais regularly contributes to WordPress core for code and UX improvements. He is one of the most passionate developers I have ever met with an insatiable desire to streamline the workflow of the process of everything he works on. He dives in head first to any new challenges and conquers them with his tenacity and intelligence which make Awais an invaluable asset to any project.

Mike AndreasenMike AndreasenWordPress Expert at Codeable

Awais is a very thorough writer and he is extremely knowledgeable of the WordPress industry. He knows exactly what is going on in the WordPress community and his outreach is an addition to any blog. I would recommend him.

Daan TollDaan TollOwner of WPLift

I switch syntax themes so often, but I haven't felt the need to switch since using 🦄 Shades of Purple for the past 6 months, it's my new default 😃 - keep up the good work man!

Adam HollisterAdam HollisterLead Developer at The British & Irish Modern Music Institute

Amazing job with balancing out the colors to ensure it's not overloading the eyes. The comments, and markdown syntax semi-hidden state styling is also a good idea! If it's not critical to always see this information then it makes sense to reduce it's visibility. Nice job mate.

B ...B ...SOP Review

I jumped ship from Cobalt 2 by Wes to 🦄 Shades of Purple theme by Ahmad Awais and I'm not looking back, beautiful shades of purple lighten up my code in a way that no other theme can, great job Awais!

IgnacioaalIgnacioaalRails Hacker

At go6.media we always use Shades of Purple for all our PHP/HTML/JS/CSS and other languages. It's so beautiful and easy to read, we also added some slight tweaks to make it even better and we could not be happier that we found it. Thank you!

WayneWayneDevs at Go6 Media

Awais takes his extension seriously and fixed a bug for me overnight. A fantastic theme that is both attractive but more importantly, effective in bring your attention to the import parts of your code.

Mark PorterMark PorterDev at PorterPeople

I started loving the 🦄 Shades of Purple theme from its name ;) After seeing images of the themes, I saw there was more and to get to know about the 'more', an installation will have to occur which did occur...After installation, I got to find out that the theme is super duper awesome than I thought… Welldone Ahmad Awais

Uche JudeUche JudeSoftware Developer Andela

Just installed 🦄 Shades of Purple and absolutely love it! Thank you for creating it! I love these colors! I also switched from Cobalt2. And just beginning a new job as a React.js dev, with it :-)

Alexandra SpalatoAlexandra SpalatoJavascript & WordPress Developer

I started using SOP during the better release and ever since it has being a perfect choice for me. Love to see my IDE always with the shades of purple splash. It improved my overall workflow. Thanks @AhamadAwais for such work.

Ojo OluwasetemiOjo OluwasetemiJavaScript Dev & Teacher

Have been using 🦄 Shades of Purple theme for the last couple of weeks and in love with it. Its fun writing code with those shades of purple <3

Ajit BohraAjit BohraEngineer & Speaker @lubusIN
Make me an Automation Pro
Build Node.js CLI Developer Automation
By using this site you agree to the privacy policy and terms
Designed & developed from scratch by Ahmad Awais
Copyright © 2020-Infinity ;) by Ahmad Awais
Peace :)