Static site for builds.kestrelsnest.social: an index page with one card per build, an rsync deploy script modelled on pantry, and the Green Man mask guide with its templates and print files. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GrX9qMoNihcWLX3xoJhabw
2.2 KiB
2.2 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
Builds is a static site of craft build write-ups: templates, 3D print files and step-by-step guides. 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<li class="build">card per build, newest first.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.
- Build pages and the index share a look: Bricolage Grotesque for headings, Inter for text, the same green accent and neutral tokens, light and dark via
prefers-color-scheme. - 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.
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.