mirror of
https://github.com/logos-co/logos-web.git
synced 2026-08-27 12:11:14 +00:00
ebfcd999cb7c276bbf6eeeb4d661039ab127ae4b
- Remove pinned pnpm 10.9.0 from pnpm/action-setup so it honors packageManager (pnpm@11.1.0) — fixes ERR_PNPM_BAD_PM_VERSION. - Regenerate pnpm-lock.yaml to restore the vitest peer-dep snapshot resolved against @types/node@25.6.0 (civi-crm) — fixes ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY on Vercel. - Add scripts/__tests__/repo-health.test.mjs guarding against both classes of failure: workflow pnpm version must match packageManager, and pnpm-lock.yaml must satisfy --frozen-lockfile. - Wire pnpm test:repo-health into test:release as the first step.
logos-co
pnpm + Turborepo monorepo for the Logos website and its content CMS.
apps/web— public Next.js 16 site (Tailwind v4,next-intl, static export)apps/cms— Payload CMS 3.x admin (Postgres-backed; edits ship as GitHub PRs)packages/content— content schemas, loaders forcontent/**, GitHub mutation helperspackages/ui— shared React primitives and SVG icons (<LogosMark />, etc.)packages/tokens— design tokenspackages/types— shared types incl. Payload-generatedpackages/config— shared ESLint / TypeScript / Prettier configcontent/**— production source of truth (pages, press, circles, builders-hub, site)
Apps are entrypoints only. Shared logic lives in packages. The web app reads content/** at build time and never calls GitHub at request time.
Requirements
Node 24, pnpm 11.1.0.
Quick start
pnpm install
pnpm dev # web → http://localhost:3000, cms → http://localhost:3001
Payload Admin: http://localhost:3001/admin.
apps/cms requires PAYLOAD_SECRET and DATABASE_URL (Postgres). Copy apps/cms/.env.example to apps/cms/.env and fill it in. See docs/deployment.md for the full env matrix.
Common scripts
pnpm build # web static export + cms build
pnpm test # vitest (apps/web)
pnpm lint # eslint --max-warnings 0
pnpm check-types # next typegen + tsc --noEmit
pnpm generate-types # regenerate packages/types/src/payload.ts from Payload schema
Branch model
develop— default branch + staging. CMS-generated content PRs target this.master— production (created when production deploys spin up).
Direct pushes to either are blocked by branch protection.
Documentation
- AGENTS.md — conventions and rules for AI agents working in this repo
- docs/deployment.md — env vars, Vercel dev/staging, self-hosted production
- docs/cms-github-content-plan.md — schema + GitHub workflow design
- docs/web-pages.md — per-page web requirements (Figma references)
- docs/components.md — shared component specs
- docs/seo.md — SEO and metadata expectations
- docs/code-quality-followups.md — known gaps awaiting decisions
Languages
TypeScript
90.5%
CSS
5.3%
JavaScript
2.3%
HTML
1.5%
Dockerfile
0.2%
Other
0.2%