Skip to content

File structure

What lives where in this scaffold.

Source tree

src/
├── components/
│   ├── ui/           shadcn primitives — owned, copy-pasted, freely editable
│   │   └── charts/   Recharts wrappers themed to shadcn CSS vars
│   ├── islands/      React islands — one file per interactive composition
│   ├── common/       Shared Astro components (FeedbackFAB, SiteHeader, etc.)
│   └── docs/         Doc-site-specific components (DocsSidebar, DocsSearch)
├── content/
│   ├── blog/         Blog posts (Markdown)
│   └── docs/         Documentation pages (Markdown/MDX)
├── layouts/
│   ├── BaseLayout.astro    Root HTML, head, theme script
│   └── DocsLayout.astro    Docs-page shell with sidebar + prev/next
├── lib/              Pure utilities: cn(), queryClient, href (withBase), flags
├── pages/            Astro routes — every file becomes a page
│   ├── index.astro
│   ├── gallery/
│   ├── demos/
│   ├── docs/[...slug].astro
│   ├── blog/
│   └── es/           Spanish locale demo
├── schemas/          Zod schemas for cross-boundary types
├── stores/           Nano Stores for cross-island state
├── styles/
│   └── global.css    Tailwind v4 import + CSS vars + dark-mode tokens
├── tests/            Vitest tests for pages, configs, and docs
└── types/            Shared TypeScript types

Root files

FilePurpose
astro.config.mjsAstro config — integrations, base, Vite plugins
components.jsonshadcn CLI config — style, alias @/*
tsconfig.jsonTypeScript strict mode + @/* path alias
vitest.config.tsVitest config
vitest.setup.tsVitest global setup
playwright.config.tsPlaywright config for visual + a11y tests
.env.exampleDocument all env vars (copy to .env locally)
CLAUDE.mdAgent context and critical warnings
INTEGRATION-PLAN.mdHistorical record of the v1.0 rollout
ROADMAP.mdOpen epics and planned work

Server archetypes (opt-in)

DirectoryPurpose
server-node/Hono + Zod-OpenAPI backend archetype
server-flask/Flask backend archetype

Both share the same OpenAPI contract (ADR 0006). Neither is required — the scaffold is fully static without them.

Path aliases

@/*./src/* — configured in tsconfig.json. Required by the shadcn CLI. Use it in all imports: import { cn } from '@/lib/utils'.

Authoritative source → CLAUDE.md — File organization

Report an issue

Show diagnostics

Environment

 

Console errors

 

Failed requests