Knowledge Corev0.3.1knowledge.casoon.de

Project structure

Where content, components, styles and schemas live, and which way dependencies point.

knowledge-core/
├── apps/
│   ├── docs/              # documentation site
│   │   └── src/
│   │       ├── config/sidebar.ts
│   │       ├── content/docs/   # MDX pages
│   │       ├── layouts/
│   │       └── pages/
│   ├── courses/           # course platform
│   │   └── src/
│   │       ├── content/courses/  # course definitions (JSON)
│   │       ├── content/lessons/  # lessons (MDX)
│   │       ├── layouts/
│   │       └── pages/
│   └── chat-worker/       # Cloudflare Worker: embed → search → generate → stream
├── packages/
│   ├── ui/                # shared Astro components
│   ├── styles/            # Tailwind CSS 4 and design tokens
│   ├── content-model/     # Zod schemas
│   └── config/            # TypeScript and Biome base configs
├── shared/                # i18n dictionaries and helpers
├── scripts/               # ingest-content.ts, update-badges.sh
└── pnpm-workspace.yaml

Dependency rules

From the project’s CLAUDE.md:

  • Apps import from @knowledge-core/ui, @knowledge-core/styles, @knowledge-core/content-model and @knowledge-core/shared.
  • Apps never import from each other.

One version per dependency

pnpm-workspace.yaml holds a catalog with the versions of Astro, Tailwind CSS, TypeScript, Zod, Biome, Vitest and the other shared tools. Packages reference them as "catalog:", so an update in one place reaches every app.

Languages

Both sites are configured for en (default, no prefix) and de (under /de/). The UI strings live in shared/src/i18n/en.ts and shared/src/i18n/de.ts.

Edit this page on GitHub · Docs for v0.3.1