Skip to content

Publish and share

Manteen registries need no registry account or central directory. Publish public/r/ through any static HTTPS host that serves the item and index documents as JSON.

This minimal workflow builds the registry before uploading it. Pin versions according to your own repository’s maintenance policy.

.github/workflows/pages.yml
name: Deploy registry
on:
push:
branches: [main]
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: "24"
cache: npm
- run: npm ci
- run: npx manteen-kit build
- uses: actions/configure-pages@v6
- uses: actions/upload-pages-artifact@v5
with:
path: public
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- id: deployment
uses: actions/deploy-pages@v5

After deployment, verify both URLs directly:

https://acme.github.io/manteen-registry/r/registry.json
https://acme.github.io/manteen-registry/r/release-panel.json

A consumer can install an item URL without changing manteen.json:

Terminal window
npx manteen info https://acme.github.io/manteen-registry/r/release-panel.json
npx manteen add https://acme.github.io/manteen-registry/r/release-panel.json

The item can still contain multiple files, npm dependencies, package styles, and a theme fragment. It must not contain a bare or namespaced registry dependency that the consumer has not configured. A direct URL has no namespace from which Manteen could resolve a bare dependency.

For repeated use, discovery, private-request configuration, or items that depend on other items, the consumer adds a namespace to manteen.json:

manteen.json
{
"registries": {
"@acme": {
"url": "https://acme.github.io/manteen-registry/r/{name}.json",
"index": "https://acme.github.io/manteen-registry/r/registry.json"
}
}
}

Keep the existing aliases, styles, theme, and tsconfig fields generated by manteen init. The abbreviated object above shows only the registry entry being added.

Consumers can now discover and install by name:

Terminal window
npx manteen list @acme
npx manteen info @acme/release-panel
npx manteen add @acme/release-panel

When a kit-authored item uses another local item, manteen-kit compiles the catalog namespace into that dependency. Treat the catalog’s namespace as the public collection name in that case. A self-contained registry may be assigned a different consumer-side name, but changing the name of a dependency-bearing kit registry leaves its compiled references pointing at the original namespace.

Read URLs and namespaces for the complete decision boundary.