Same badge as Kestrel's Hall with a B, linked from the index and the Green Man page. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GrX9qMoNihcWLX3xoJhabw
2.7 KiB
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 classfirst(full-width card).og-image.jpg- OpenGraph image for the index, 1200 x 630deploy- 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 (.homeingreenman/index.html). - Downloads live in
<build>/dl/. Zip files there are part of the site, so*.zipis deliberately NOT in.gitignore. greenman/index.htmlis 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.homeback links, their CSS and the<link rel="icon" href="../favicon.svg">line.
Adding a build
- Create
<name>/index.htmlwith itsimg/anddl/. - Add a card to the top of the list in the top-level
index.html. ./deploy -n, then./deploy.
Development
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):
./deploy -n # dry run, changes nothing
./deploy # push
Important deployment notes:
DIRindeployis/var/www/my_webapp__3/www. The script refuses to run if it is ever reset to themy_webapp__Nplaceholder.- 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=socialis 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.