- Use
pnpm(repo pins[email protected]inpackage.json). - Install once:
pnpm install(runsnuxt prepareviapostinstallto generate.nuxt/files used by ESLint/type tooling). - Dev server:
pnpm dev.
- Run checks in this order:
pnpm lint->pnpm typecheck->pnpm build. - There is no test script/workflow in this repo right now; do not invent
pnpm test. - CI uses Node 22 on Ubuntu (
.github/workflows/ci.yml); prefer reproducing issues with Node 22 when versions matter.
- App shell/SEO defaults:
app/app.vue. - Landing page composition and data fetch:
app/pages/index.vue(loads thecontentcollection withqueryCollection("content").first()). - Main editable page content:
content/index.yml. - Content schema/validation:
content.config.ts(keep YAML in sync with this schema or build/typecheck will fail). - Global styles/theme tokens:
app/assets/css/main.css(Nuxtcsspoints here).
- Shadcn Nuxt components are configured with no prefix and live under
app/components/ui(nuxt.config.ts:shadcn.componentDir,shadcn.prefix=""). - Tailwind v4 is wired through the Vite plugin (
@tailwindcss/vite) and CSS directives inapp/assets/css/main.css(including@source ../../../content/**/*for content scanning). - Color mode uses class strategy with empty suffix (
@nuxtjs/color-mode,classSuffix: ""), so dark mode selectors expect.dark.
- Single-package repo (root package only;
pnpm-workspace.yamldoes not declare workspace packages). - Treat
.nuxt/,.output/, and.data/as generated artifacts; do not hand-edit.