Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 2.21 KB

File metadata and controls

44 lines (33 loc) · 2.21 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

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

Commands

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 Pages

No test runner is configured.

Architecture

  • 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.yml and tags.yml for 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 autogenerated type from docs/ directory

Key Conventions

  • Broken links are errors: onBrokenLinks: "throw" — all internal links must resolve
  • CSS Modules for component-scoped styling (.module.css files)
  • @site/ import alias for absolute imports from project root
  • Prism language ordering matters: some languages extend others (e.g., racket must come after scheme, crystal after ruby) in docusaurus.config.ts
  • Language logos sorted by TIOBE index in src/pages/index.tsx and src/pages/technologies-used.md — maintain this ordering when adding new languages
  • Blog front matter requires slug, title, authors (from authors.yml), and tags (from tags.yml)
  • Doc front matter uses sidebar_position to control ordering within auto-generated sidebar