Introducing JSR - Modern Package Registry for JavaScript and TypeScript

The JavaScript Registry (JSR) is a modern package registry for JavaScript and TypeScript. JSR works with many runtimes (Node, Deno, browsers, and more) and is backwards compatible with npm. Deno team is behind the development of JSR. Deno needs no introduction, it is a Next-generation JavaScript runtime similar to NodeJS.
JSR is open source and licensed under the MIT License. Source code is available in Github.
NPM has more than 2 million packages and it is widely used to download JavaScript libraries. So what is the need for JSR?
There are many JavaScript runtimes available. NodeJS is popular but Deno, Bun, Vite are gaining popularity and acceptance from developers. Since there are different runtimes, the package manager should also be generic and compatible to all runtime. NPM is specific to NodeJS.
JSR was designed with TypeScript support in mind. TypeScript source files are published directly to JSR. Node does not have direct support for TypeScript. It has to transpile the source code to JavaScript and distribute the modules with .d.ts files. In case of JSR, it is no more required.
JSR supports ECMAScript modules natively. JSR isn't a replacement for the npm registry. It is a superset of npm and JSR also supports to download NPM packages.
deno publish
command can be used to publish packages to JSR. Learn more about how to publish libraries to JSR.
It is good to have new package manager. NPM is widely used and still the first choice for JavaScript developers. It might take some time for them to move to JSR or in future Node may fix the Typescript related issues and it can make NPM better.