jsrepo.com
A registry for your registries.
jsrepo.com is a centralized source registry for registries. Much like npm is for packages, jsrepo.com is for registries.
Like npm, you publish your registry to jsrepo.com with the jsrepo publish command and then other developers can add your code to their projects with the jsrepo add command.
The benefits of jsrepo.com
- Semver support - You can publish multiple versions of the same registry (including pre-release versions) just like you would on npm.
- Easy installation - You can add your registry to your project with the simple
@<scope>/<registry>syntax. - Private registries - You can easily publish private registries and share them with your team for free.
- Marketplace - You can monetize your registry by selling it on the marketplace.
- Discoverability - Your registry will be discoverable through the jsrepo.com website and the jsrepo mcp server.
Publishing your registry
If you already have a registry that can be built with jsrepo then there are only a few steps to publishing it to jsrepo.com. If not then checkout the create a registry guide to get started.
Create an account
Go to jsrepo.com and create an account.
Claim a scope
Once you have an account navigate to /account/scopes/new to claim a scope.
Scopes are used to group your registries together and are required to publish your registry.
When users add your registry the scope will be the first part of the registry name: @<scope>/<registry>.
Authenticate with jsrepo.com
Run the following command to authenticate with jsrepo.com:
jsrepo auth jsrepoYou will be prompted to finish the sign in in your browser and then you will be authenticated.
Prepare your registry
Decide on a name for your registry and add it to your jsrepo.config.ts file:
import { defineConfig } from "jsrepo";
export default defineConfig({
registry: {
name: "@my-scope/my-registry",
// ...
},
});Next you need to provide the version or your registry that will be published. If you want jsrepo to pull from the version in your package.json file just provide package as the version:
import { defineConfig } from "jsrepo";
export default defineConfig({
registry: {
name: "@my-scope/my-registry",
version: "1.0.0",
// or take the version from the `package.json` file
version: "package",
// ...
},
});(Optional) Now is also a good time to add any other metadata you want to your registry:
import { defineConfig } from "jsrepo";
export default defineConfig({
registry: {
name: "@my-scope/my-registry",
description: "My first registry",
homepage: "https://my-registry.com",
repository: "https://github.com/my-scope/my-registry",
bugs: "https://github.com/my-scope/my-registry/issues",
authors: ["Aidan Bleser"],
tags: ["first-registry"],
// ...
},
});(Optional) By default your registry will be published as public so anyone can see and use it. You can change the access level to "private" or "marketplace" by setting the access property:
import { defineConfig } from "jsrepo";
export default defineConfig({
registry: {
name: "@my-scope/my-registry",
access: "private",
},
});Start adding items to your project
Run the following command to add items to your project:
jsrepo add --registry @my-scope/my-registry
# or
jsrepo init @my-scope/my-registryBadges
| Badge | |
|---|---|