Find packages. Publish packages. PackageHub is the public storefront for discovery; pkgpublish is the publisher console for configuration and shipping.
packagehub.dev »
pkgpublish.dev
·
Report Bug
·
Request Feature
Publish packages across registries from one dashboard (npm, PyPI, Crates.io).
Publish packages across registries from one dashboard. Connect GitHub, add trusted publishers once, and ship to npm, PyPI, Crates.io, and more — without storing API keys or juggling each registry’s setup.
| Domain | Job |
|---|---|
Public face: find, browse, search, package pages — attention and discovery |
|
Publisher app: connect repos, configure registries, credentials, publish pipelines |
Both share identity later via devcentr.org account. Do not collapse everything into one name: a hub people browse is a different job from a publish-config console.
The monorepo may keep the packagehub / PackageHub folder name; product copy and routes should speak both brands clearly.
PackageHub (browse) + pkgpublish (console) are a publishing-as-a-service family:
-
You sign in with GitHub (or Google) — eventually via DevCentr.org.
-
You connect a repo and choose which package registries to publish to (npm, PyPI, Crates.io, etc.).
-
You do a one-time "Trusted Publisher" setup in each registry (pointing at your repo and a managed workflow).
-
You publish from the dashboard or by triggering a workflow — no long-lived secrets in your repo, and packages stay under your branding.
-
The public PackageHub surface draws attention to packages that were published through the ecosystem.
Because most registries only trust a fixed set of OIDC issuers (e.g. GitHub Actions), the publisher path uses a proxy approach: it triggers a managed GitHub Actions workflow in your repo; that workflow does the OIDC handshake with each registry. The package page still shows your repo and "GitHub Actions."
-
Web app (
apps/web): SolidStart — today includes dashboard flows that will split toward pkgpublish.dev; browse/marketing faces packagehub.dev. -
Docs (
apps/docs): Fumadocs (Next.js) — user and contributor docs; deployed via GitHub Actions.
Canonical path in code hive: Z:\code\github.com\dev-centr\PackageHub — clone or work from there to match the FOLDER_SCHEMA.
See Install — Prerequisites and pnpm install.
pnpm install # Install all workspace deps
pnpm dev # Web app @ http://localhost:5173
pnpm dev:docs # Docs @ http://localhost:3000 (open /docs)
pnpm build # Build all
pnpm build:web # Build web only
pnpm build:docs # Build docs only-
Install — Prerequisites and
pnpm install -
Running — Dev servers, build, and start
-
Repo architecture — Monorepo layout, apps, and CI
The Fumadocs site in apps/docs covers:
-
Introduction and architecture
-
Getting started (sign in, connect repo, connect registries, publish)
-
Supported registries (npm, PyPI, Crates.io)
-
OIDC and trusted publishing
-
Writing adapters
Run pnpm dev:docs and open http://localhost:3000/docs.
To publish the docs site: enable GitHub Pages in the repo (Settings → Pages → Source: GitHub Actions). The workflow .github/workflows/docs.yml builds and deploys the Fumadocs site; live docs: https://dev-centr.github.io/packagehub/ (product site target remains https://packagehub.dev when DNS is ready).
Contributions are welcome. Open an issue before large changes.
DevCentr.org — support@devcentr.org
-
Site (planned): https://packagehub.dev