Source for cosmiccoding.com.au — Sam Hinton's personal site. Books, reviews, blog posts, tutorials, an artist corner, and a CV.
The site is a static build produced by Astro v5 with Svelte 5
islands for the interactive bits (reviews explorer, artists explorer, mobile
menu, code-toggle on tutorials). It deploys to GitHub Pages from master
via .github/workflows/gh-pages.yml.
It used to be a Hugo site. The migration is documented under
plans/, and the per-phase implementation skill lives at
.cursor/skills/implement-plan/.
make install # installs casks, node deps, python deps via uv
make blog # `npm run dev` — local Astro dev server with HMR
make prod # clean build into `dist/`make verify-all runs every phase verifier in .cursor/skills/implement-plan/scripts/phases/
against dist/; that is what gates a PR before deploy.
src/content/— Astro content collections (reviews/,blogs/,tutorials/).src/pages/— routes; dynamic[...slug].astrofiles render collection items.src/components/— Astro components, with Svelte islands undercomponents/islands/.src/data/— typed YAML-replacement data files (books, artists, podcasts, …).src/lib/— shared helpers (covers, content sorting, types, thefancy-card3-D effect).src/styles/— Tailwind v4 entrypoint plus plain-CSS partials, all imported frommain.css. The CSS-first@themeblock inmain.cssreplaces what used to live intailwind.config.cjs.src/assets/— images and SVGs that go throughastro:assetsfor hashing/optimisation.astro-public/— verbatim static files (favicons,CNAME, podcast thumbnails, CV PDF).content/— markdown sources. Tutorials are generated from notebooks viabuilder/convert.py.plans/— phase-by-phase migration plan, kept around for context..cursor/skills/— operational playbooks (book reviews, find-artists, humanizer, implement-plan).
- Drafting a new review — see
.cursor/skills/book-review/. - Refreshing the cover-artist database from r/ProgressionFantasy — see
.cursor/skills/find-artists/. - Editing review prose without sounding AI-generated — see
.cursor/skills/humanizer/.




