First things I learned about JSR

Deno just launched a new package registry called JSR. Here is a simplified list with what I've learned about it:

  • It comes with a new scheme jsr:, similar with npm: used also by Deno to support npm packages

  • Both npm: (for npm packages) and node: (for node builtins) schemes are supported

  • Packages are also exposed as URLs, similar with deno.land/x

  • All packages are scoped based, @your_scope/your_package instead of your_package

  • It uses semver

  • There is a compatibility layer for npm, jsr:@luca/flag can be used as @jsr/luca__flag in npm.

  • Native TypeScript

  • ESM only, no more CommonJS

  • Built-in documentation generation

  • Limits (by default):

    • 3 scopes/account

    • 100 packages/scope

    • 20 packages created / 7 day window

    • 1000 publish attempts / 7 day window

    • gzipped tarball < 20 MB

    • individual file < 4 MB

All these limits can be changed by contacting the support team.

Keep in mind that all these things might change in the future.