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
- 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 ....