Files
nexu-io__open-design/docs/self-hosting-a-registry.md
Joey-nexu f1a0b60c6c chore: unify product name display to OpenDesign repo-wide (#6998)
* chore: unify product name display to OpenDesign repo-wide

Rename the user-facing product name from "Open Design" to "OpenDesign"
across documentation, web/desktop UI strings, i18n locales, prompts,
plugin/skill/design-system content, changelogs, and specs, matching the
landing-page rename already in flight.

Deliberately excluded so installed-app identity stays untouched:
- packages/release PRODUCT_NAME and everything derived from it
  (app bundle names, installer/registry identity, updater feeds)
- tools/pack, tools/release, apps/packaged, landing page (PR #6983)
- mocks/ recorded traces and LICENSE
- test fixtures and comments that encode real on-disk install paths
  (Open Design.app, Program Files\Open Design, AppData paths)

Validated with pnpm guard, pnpm typecheck, and targeted web/desktop/host
test runs over the renamed strings.

* fix(web): keep two-letter author monogram for CamelCase brand names

authorInitials split words on whitespace only, so the renamed single-token
author name "OpenDesign" produced a one-letter monogram. Treat lower-to-upper
CamelCase boundaries as word breaks so the avatar fallback stays "OD".

* fix(release): restore spaced Windows source artifact names in win.ps1

tools/pack still derives builder outputs from the unchanged PRODUCT_NAME
("Open Design"), so the asset script must look for the spaced filenames.
Matches the mac/mac-intel/linux asset scripts, which were already kept on
the original names.

---------

Co-authored-by: Joey <236967869+joeylee12629-star@users.noreply.github.com>
2026-08-18 07:09:45 +00:00

1.8 KiB

Self-hosting An OpenDesign Registry

An OpenDesign registry is a source of open-design-marketplace.json plus the review process that produces it. In v1 this can be a static GitHub repository, GitHub Enterprise, S3/R2, or any HTTPS host.

Static Catalog Shape

plugins/registry/
  official/open-design-marketplace.json
  community/open-design-marketplace.json
plugins/community/<vendor>/<plugin-name>/
  SKILL.md
  open-design.json

The machine-readable URL is the raw JSON file:

od marketplace add https://example.com/open-design-marketplace.json --trust restricted
od marketplace refresh <id>
od marketplace search "deck" --json

Do not add a GitHub tree page. The daemon validates the response as JSON and rejects HTML.

Private GitHub Or GitHub Enterprise

od marketplace login https://github.example.com/org/plugin-registry
od marketplace add https://raw.github.example.com/org/plugin-registry/main/open-design-marketplace.json --trust trusted

Authentication is delegated to gh auth login --hostname <host>. Tokens stay inside GitHub CLI.

Doctor

od marketplace doctor <id> --strict --json

Doctor checks stable vendor/plugin-name IDs, source/archive presence, archive integrity, yanking reasons, dist-tag consistency, publisher identity, license, and capability summaries.

Database Backend Path

The runtime code talks to RegistryBackend. A static JSON registry, GitHub PR registry, and database registry expose the same list/search/resolve/publish/yank contract. A commercial deployment can replace the static backend with a managed database for:

  • private catalogs
  • organization allowlists
  • approval workflows
  • SSO-backed publisher identity
  • audit logs
  • entitlements and paid distribution

The CLI vocabulary stays the same: od marketplace add/search/doctor, od plugin install/upgrade/publish/yank.