JupyterLab extensions are written in JavaScript, a web frontend language. Open source extensions are stored on a global package registry called npm (https://www.npmjs.com/), which also stores many other packages for JavaScript development.
A registry or repository is a storage solution where packages are hosted.
JupyterLab leverages the npm command-line tool to interact with the npm registry or install local packages. The command-line tool is part of Node.js, which needs to be installed before using JupyterLab extensions. If you have already downloaded Node.js on your machine, skip to the Installing extensions subsections.