Files
personal-site/CLAUDE.md
T
2026-05-05 23:23:49 +03:00

1.7 KiB

CLAUDE.md — Instructions for the Claude AI assistant

Project

Static personal website. Source in org files, built with Nix + Emacs org-publish. See README.org for full project structure and maintenance guide.

Key files

File Purpose
flake.nix Nix flake — build derivation, run apps
build.el org-publish config (pages + static assets)
content/ Org source files → HTML pages
static/ Static assets (CSS, images, fonts)

Conventions

  • New pages: add content/<name>.org, add nav link to site-nav in build.el
  • Sub-projects: follow the three-step pattern in README.org (input → let binding → installPhase copy)
  • CSS: edit static/style.css; use existing custom properties (--bg, --fg, etc.) before adding new ones
  • No JS unless explicitly requested
  • No new files unless clearly necessary — prefer editing existing ones

Build

nix build   # produces result/ symlink with the full static site
nix run     # build + serve at http://localhost:8080

The build runs emacs --batch --load ./build.el inside a Nix sandbox. org-publish-use-timestamps-flag is nil so every build is a full rebuild.

Architecture notes

  • Multi-arch: x86_64-linux and aarch64-linux (CI runs on Raspberry Pi)
  • emacs-nox is used (headless, no display required)
  • Source is filtered with pkgs.lib.cleanSource — avoid relying on files that would be excluded (e.g. .git)
  • public/ is gitignored; never commit it

Updating README.org

Keep README.org up to date as the project evolves. It is the canonical human-readable documentation.