Marketing site for pakx — deployed at pakx.dev. Static landing + federated browse + docs + status + legal.
The signed-in dashboard and API live in a separate repo at pakxdev/pakx-registry, served from registry.pakx.dev.
- Next.js 16 (App Router, Turbopack)
- React 19
- Tailwind CSS v4 (CSS-first, no postcss config)
- Geist sans + mono via
next/font - Nonce-based CSP via
src/middleware.ts - Cross-origin federated reader at
src/lib/registry.ts(MCP Registry + Smithery + pakx-registry)
| Path | Render | Purpose |
|---|---|---|
/ |
static | Landing — hero, install snippets, manifest preview, crates table |
/explore |
dynamic | Federated registry browser (forwards ?q= to all three upstreams) |
/p/[source]/[...id] |
dynamic | Package detail (versions, install snippet, raw metadata) |
/docs |
static | Six-step quickstart |
/pricing |
static | Three-tier pricing + FAQ |
/status |
dynamic | Live registry health probe |
/terms |
static | Terms of Service |
/privacy |
static | Privacy Policy |
/opengraph-image |
dynamic | 1200×630 PNG via next/og for social cards |
/install.sh |
static | POSIX installer (downloads + sha256-verifies prebuilt) |
/install.ps1 |
static | Windows installer (same) |
/.well-known/security.txt |
static | RFC 9116 disclosure contacts |
/robots.txt, /sitemap.xml |
static | Crawler metadata |
- Nonce-based CSP with
'strict-dynamic',frame-ancestors 'none',upgrade-insecure-requests. Allowlists the three federated registry origins inconnect-srcso/exploreand/statuskeep working. - Hardening headers:
X-Frame-Options: DENY,X-Content-Type-Options: nosniff,Referrer-Policy: strict-origin-when-cross-origin,Permissions-Policydenying camera/mic/geolocation/FLoC, HSTS one-yearpreload. npm audit0 (postcss override to^8.5.15).- Disclosures via GitHub Security Advisory or
security@pakx.dev.
npm install
npm run dev # http://localhost:3000
npm run lint # eslint
npm run build # production buildLocal
next devpanics in the Turbopack PostCSS subprocess on some Windows boxes (DLL exit0xc0000142). Productionnext buildworks fine; use that for local verification when dev refuses to start.
Push to main → Vercel runs the deploy automatically. Custom domain pakx.dev configured in Vercel project settings; DNS lives at the registrar.
GitHub Actions is temporarily disabled across the pakx repos to control CI billing. Vercel previews still run on every PR.
pakxdev/pakx— the CLI itselfpakxdev/pakx-registry— backend (live atregistry.pakx.dev)pakxdev/homebrew-tap—brew install pakxdev/tap/pakxpakxdev/scoop-pakx—scoop bucket add pakx ...
MIT — see LICENSE (or the root pakx repo).