This monorepo contains all deployable apps and shared packages that power ternent.dev.
nvm use(reads Node version from.nvmrc)pnpm installpnpm -w build(build everything)pnpm -w test(optional)- run an app:
pnpm --filter <app-name> dev
root
├─ apps/ # deployable apps (server + static)
├─ packages/ # shared libraries (publishable)
├─ .ops/ # Kubernetes manifests, docker build/deploy scripts
├─ .github/ # CI + issue/PR templates
├─ .changeset/ # versioning + release notes
├─ scripts/ # repo-level utilities
├─ pnpm-workspace.yaml # workspace globs
├─ vercel.json # static deploy settings
└─ README.md
docs/pixpax-drops/README.mddocs/pixpax-drops/AI.mddocs/pixpax-drops/SPEC.mddocs/pixpax-drops/PLAN.mddocs/pixpax-drops/CHECKLIST.md
- Public listing:
GET /v1/pixpax/collections/catalog(public only) - Collection route resolution:
GET /v1/pixpax/collections/:collectionId/resolve - Collection behavior settings are collection-level:
visibility:public | unlistedissuanceMode:scheduled | codes-only
- Unlisted collections are discoverable via direct route and My Collections after ownership.
- Admin code-token printing:
- single mint endpoint enriches response with
redeemUrl+qrSvg - bulk printable endpoint:
POST /v1/pixpax/collections/:collectionId/:version/code-cards - endpoint returns JSON
items[](QR + metadata) for frontend rendering/printing - compact redeem tokens use signed handle claims (
v=3,kid,codeId,exp) with server lookup - printed QR links use
https://pixpax.xyz/r/<codeId>and resolve to/pixpax/redeem?token=...
- single mint endpoint enriches response with
- Workspace: pnpm; versioning: changesets
- Deploy: server apps → Docker Hub + Kubernetes via
.ops; static sites → Vercel CLI - Packages: public npm modules, semver via changesets
- Keep changes small and scoped. See
CONTRIBUTING.md. - Prefer adding shared code under
packages/*rather than duplicating in apps. - Add
.env.examplevalues when introducing new env vars.
- If your change impacts a package/app API or user-visible behavior, run
pnpm changesetand select affected packages. mainmerges trigger CI; release flow bumps versions and publishes:- docker images for server apps (then deployed by
.ops) - static site deploys to Vercel
npm publishfor packages
- docker images for server apps (then deployed by
- Workspace hoisting issues? Try
pnpm install --force. - Local type errors across packages? Ensure
tsconfigreferences are up to date and run a clean build:pnpm -w build --filter ....