Files
Eric WagonerandClaude Fable 5.2 4dc9a51731 Rename to Kestrel's Builds, restyle index after Kestrel's Hall
Index copy no longer promises templates or print files for every build.
Add tip jar link and back links from the Green Man page to the index.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrX9qMoNihcWLX3xoJhabw
2026-11-10 17:25:39 -05:00

58 lines
2.6 KiB
Markdown

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Kestrel's Builds is a static site of craft build write-ups. Builds vary (foam and printed parts, paint techniques, sewing, electronics), so each one ships a guide plus whatever files that project needs. The index must not promise templates or print files for every build. There is no build step and no backend.
**Live URL:** https://builds.kestrelsnest.social
## File Structure
- `index.html` - Site index (HTML/CSS in one file, no JavaScript). One `<a class="build">` card per build, newest first; the newest also has class `first` (full-width card).
- `og-image.jpg` - OpenGraph image for the index, 1200 x 630
- `deploy` - Rsync deployment script
- `<build>/` - One folder per build, self-contained: `index.html`, `img/`, `dl/`
- `greenman/` - Green Man mask
## Conventions
- Each build folder is self-contained and uses relative links, so it works at any path.
- The index is a sister page to Kestrel's Hall (gamehall.kestrelsnest.social): the same dark ink / bone / gold tokens, the same serif stack, the same card and section structure. Keep them in step.
- Every build page links back to the index with `<a href="../">` at its top and bottom (`.home` in `greenman/index.html`).
- Downloads live in `<build>/dl/`. Zip files there are part of the site, so `*.zip` is deliberately NOT in `.gitignore`.
- `greenman/index.html` is generated from the mask kit's own source (not in this repo). Hand edits to it are lost when the kit is regenerated; change the source and re-copy, then re-add the two `.home` back links and their CSS.
## Adding a build
1. Create `<name>/index.html` with its `img/` and `dl/`.
2. Add a card to the top of the list in the top-level `index.html`.
3. `./deploy -n`, then `./deploy`.
## Development
```bash
python3 -m http.server 8000
```
Then open `http://localhost:8000`.
## Deployment
The `deploy` script uses rsync to push to YunoHost (a My Webapp static app, like pantry):
```bash
./deploy -n # dry run, changes nothing
./deploy # push
```
**Important deployment notes:**
- `DIR` in `deploy` is `/var/www/my_webapp__3/www`. The script refuses to run if it is ever reset to the `my_webapp__N` placeholder.
- rsync runs with `--delete`: anything on the server that is not in this folder is removed. Do not keep server-only files in the web root.
- `HOST=social` is an SSH config alias, the same one pantry uses.
## OpenGraph
Meta tags in the index `<head>` point to `https://builds.kestrelsnest.social/og-image.jpg`. If the URL changes, update `og:image`, `og:url` and `twitter:image`.