This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Marketing/docs website for VitoDeploy (vitodeploy.com) — a self-hosted server management tool. Built with Next.js 16, statically exported and deployed to Netlify.
bun run dev— Start dev server (Turbopack)bun run build— Static export + generate RSS feedsbun run lint— ESLintbun run typecheck— TypeScript check (tsc --noEmit)bun run format— Prettier format all TS/TSX files
Package manager is bun (uses bun.lock).
Static export site (output: "export" in next.config.mjs) — no server-side features, no API routes. Deployed to Netlify (out/ directory).
All content lives in content/:
- Docs (
content/docs/{version}/): Versioned documentation (1.x, 2.x, 3.x). Default version is 3.x. Markdown/MDX files. Sidebar structure is hardcoded inlib/docs.ts(not file-system derived). - Blog (
content/blog/): Posts useYYYY-MM-DD-slug/index.mdxnaming convention. Can also be standalone.mdx/.mdfiles with date prefix.
lib/docs.ts— Doc loading, sidebar config, version routing. Sidebar items defined inline per version.lib/docs-config.ts— Version constants (VERSIONS,DEFAULT_VERSION), URL helpers, slug parsing. Default version URLs omit the version prefix (/docs/foovs/docs/2.x/foo).lib/blog.ts— Blog post loading, author data, excerpt extraction.lib/mdx.ts— MDX compilation with remark-gfm, remark-directive, custom callout plugin, rehype-pretty-code (Shiki with vesper/github-light themes).lib/remark-callout.ts— Custom remark plugin for callout directives.scripts/generate-rss.ts— Post-build script generating RSS and Atom feeds intoout/.
/— Landing page (hero, features, contributors, testimonials)/blogand/blog/[slug]— Blog listing and posts/docs/[...slug]— Versioned docs (catch-all route handles version parsing)
- shadcn/ui (radix-nova style, Tailwind v4, CSS variables for theming)
components/ui/— shadcn primitivescomponents/— Site-specific components (navbar, footer, MDX components, docs sidebar, etc.)components/landing/— Landing page sections- Path alias:
@/*maps to project root
- No semicolons, double quotes, trailing commas (es5), 2-space indent
- Prettier with
prettier-plugin-tailwindcss(usescn()andcva()for class sorting) - ESLint: next/core-web-vitals + next/typescript