Static site for constellation-works.com — the front door over
the constellation-works projects.
public/ is the deployed output; Cloudflare Pages serves it verbatim. The one build step
generates the Notes section into public/notes/ (ignored by git) before each deploy.
public/index.html— the home page, one file, styles inline.notes/<slug>/index.md— one note: front matter, Markdown, and the files it links to (data,card.pngfor the link preview).build.pydocuments the front matter.build.py— builds each note page, the/notes/index and the Atom feed.public/assets/— Notes stylesheet and theme scripts. Tokens mirrorindex.html.public/brand/— logo assets generated by the brand kit'sbuild.py. Do not hand-edit an SVG here; regenerate it at the source and re-copy.
Pushes to main deploy via .github/workflows/website.yml.
Requires repository secrets CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID, and a
production environment variable CLOUDFLARE_PAGES_PROJECT naming the existing Pages project
bound to constellation-works.com.
A note ships only when its front matter says status: published and has a date.
Drafts are skipped by the deploy build, so merging a draft does not publish it. Every
note goes through the marketing repo's approval workflow first; flipping a note to
published and pushing to main is the act of publishing.
Link cards are 1200x630 and generated by the brand kit (marketing/brand/card.py).
uv run --with markdown==3.8.2 python3 build.py --drafts # drafts included, marked, noindex
python3 -m http.server -d public 8000