This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Documentation and marketing website for XFrames, a GPU-accelerated cross-platform desktop app framework. Built with Docusaurus 3.7, React 18, and TypeScript.
Production URL: https://xframes.dev
yarn start # Dev server with hot reload
yarn build # Production build to /build
yarn serve # Serve production build locally
yarn typecheck # TypeScript type checking (tsc)
yarn clear # Clear Docusaurus cache
yarn deploy # Deploy to GitHub PagesNo test runner is configured.
- Docusaurus 3 (classic preset) — static site generator with MDX support
- docs/ — Documentation pages; sidebar is auto-generated from filesystem structure
- blog/ — Blog posts with
authors.ymlandtags.ymlfor metadata - src/components/ — Shared React components (e.g.,
HomepageFeatures) - src/pages/ — Custom pages: homepage (
index.tsx), FAQ (faq.md), technologies (technologies-used.md) - src/css/custom.css — Global CSS variables and overrides (Infima CSS framework)
- static/img/ — Language logos and site images
- docusaurus.config.ts — Main config: navbar, footer, Prism languages, blog/feed settings
- sidebars.ts — Uses
autogeneratedtype fromdocs/directory
- Broken links are errors:
onBrokenLinks: "throw"— all internal links must resolve - CSS Modules for component-scoped styling (
.module.cssfiles) @site/import alias for absolute imports from project root- Prism language ordering matters: some languages extend others (e.g.,
racketmust come afterscheme,crystalafterruby) indocusaurus.config.ts - Language logos sorted by TIOBE index in
src/pages/index.tsxandsrc/pages/technologies-used.md— maintain this ordering when adding new languages - Blog front matter requires
slug,title,authors(fromauthors.yml), andtags(fromtags.yml) - Doc front matter uses
sidebar_positionto control ordering within auto-generated sidebar