Watch
1
0
Fork
You've already forked Justcook.besthappypanda.com
0
Cook Without a Recipe — a free course in cooking fundamentals. Published at https://justcook.besthappypanda.com
  • HTML 45.5%
  • CSS 43.5%
  • JavaScript 7.8%
  • Shell 3.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Adam cc7190ddc3 Link all four sites: Pack Bench is live
Every sibling now has a domain, so the sync script rewrites all of them to
their real URLs instead of dropping the ones with nowhere to point.
2026-09-09 07:59:36 +01:00
public Link all four sites: Pack Bench is live 2026-09-09 07:59:36 +01:00
tools Link all four sites: Pack Bench is live 2026-09-09 07:59:36 +01:00
.gitignore Publish Cook Without a Recipe as a bovine pages site 2026-09-08 16:27:40 +01:00
.pages Publish Cook Without a Recipe as a bovine pages site 2026-09-08 16:27:40 +01:00
README.md Note the capital-J repo name that DNS verification depends on 2026-09-08 16:30:24 +01:00

Cook Without a Recipe

A free course in cooking fundamentals: the five dials, a heat ladder drawn to scale, salt and ratio calculators, and ten techniques in the order they build. Static HTML — no build step, no framework, no dependencies. Installs as an offline app.

Live at https://justcook.besthappypanda.com

Layout

.pages           bovine-pages-server config (enables the site, sets the domain)
public/          everything that gets served
tools/           helper scripts, not published

Bovine serves the contents of public/ — nothing above it is web-visible.

Deployment

The dev folder is ~/Documents/knitting site/cooking, which also holds three unrelated sites, so this repo is kept separate and public/ is rebuilt from it:

sh tools/sync-from-dev.sh
git add -A && git commit -m "Update site" && git push

Pushing to main is the deploy — bovine reads the default branch directly, there is no build step.

Two things that fail silently

  1. Bump the service worker cache after any asset edit. public/sw.js serves assets cache-first, so an edited stylesheet or script stays invisible to anyone with the app installed until const CACHE = "cook-without-a-recipe-vN" changes. No error is produced.
  2. The repo name must stay Justcook.besthappypanda.com — capital J. Bovine verifies domain ownership against a DNS TXT record holding sha256("owner/repository"), and the record for this domain was created from the capitalised form. The name is therefore load-bearing and case-sensitive even though the domain itself is not. Rename the repo and the custom domain silently 404s while the pages URL keeps returning 200. If it must be renamed, recompute printf '%s' "adam/NEWNAME" | shasum -a 256 and update the TXT record to match, in that order.