Private operations notes.
How to run the site. Workflow notes for Julio, future Julio, and the person who takes this over someday.
The site lives in /Users/julio/homepage on this machine. Every page is static HTML. No server. No database. Everything deploys to GitHub Pages via the hoolio/julio-homepage repository.
/ → /Users/julio/homepage
index.html → splash (deer click-through)
/home/ → main site (portfolio, projects, categories)
/home/journal/ → journal posts (all, generated)
/home/observable/ → Observable project page
/home/shades/ → Shades News project page
/home/github/ → GitHub project page
/home/radio/ → Chop Radio archive
/home/writings/ → Writings category (all posts)
/home/music/ → Music category filter
/home/sounds/ → Sounds category filter
/home/tech/ → Tech category filter
/home/history/ → History category filter
/home/culture/ → Culture category filter
/about/ → About page
/health/ → Private health log (log123)
/docs/ → This page (log123)
/posts/ → Markdown source files for journal
/css/ → Stylesheets
/js/ → JavaScript (chop-auth, chop-viz, chop-player)
/tools/ → Build scripts + snip audio tool
/tools/build-journal.js
/tools/snip/ → Drag-drop MP3 → markdown tool
/assets/ → Images (deer.jpg)
Two separate passwords. Both persist on the device once entered.
/home/radio/. Session-scoped (clears when you close the browser tab)./health/ and /docs/. Persistent (stays unlocked on this device until you click Lock).Journal posts are plain Markdown files in /posts/. The build script turns them into HTML.
Filename format: YYYY-MM-DD-slug.md. Example: /posts/2026-04-15-on-the-metro.md
---
title: On the metro
deck: A short piece about commuting and attention.
date: 2026-04-15
slug: on-the-metro
categories: culture, tech
---
All fields required except deck. slug determines the URL. categories is a comma-separated list; each value becomes a tag that filters posts on that category's page. Valid categories: music, sounds, tech, history, culture.
Standard Markdown supported: **bold**, *italic*, [link](url), ## headings, > blockquotes.
::audio[Title of clip](https://archive.org/download/choplogic-radio/file.mp3)
::pullquote[A quoted line that gets italic centered treatment]
::break
::notebook[@username/notebook-name]
node tools/build-journal.js
This regenerates /home/journal/, all category pages, and the individual post page.
git add -A
git commit -m "New post: on the metro"
git push
GitHub Pages rebuilds automatically within a minute.
Audio clips are hosted on the Internet Archive. The ::audio[...] tag in markdown embeds a player inline.
To create a clip embed, you need two things:
Our archive lives at archive.org/details/choplogic-radio. Files follow the pattern chop##.mp3 or similar.
Easier: use the Snip tool.
The easy way:
ia upload commandpip3 install internetarchive
ia configure
# Enter chopradio@gmail.com + archive.org password
ia upload choplogic-radio myfile.mp3 --remote-name=my-file.mp3
After upload, the file is available at https://archive.org/download/choplogic-radio/my-file.mp3.
Go to /health/, unlock with log123.
The entry is saved to browser localStorage — never leaves this device. To back up, use the Export CSV button (coming soon) or copy the data manually from browser dev tools.
The dashboard auto-refreshes: stats cards, activity heatmap, HRV timeline, calories/protein/sleep chart all update.
Every commit pushed to the main branch of hoolio/julio-homepage auto-deploys to chopradio.com via GitHub Pages. No build step, no CI — GitHub serves the static files directly.
cd /Users/julio/homepage
git add -A
git commit -m "Your message"
git push
Check deployment status at github.com/hoolio/julio-homepage/actions.
DNS: chopradio.com → GitHub Pages via A records at GoDaddy (4 A records pointing to 185.199.108-111.153, plus CNAME for www → hoolio.github.io).
Episode track listings on /home/radio/ are public. Clicking play requires the chopog password.
To change the password, regenerate its SHA-256 hash:
echo -n "new-password" | shasum -a 256
Then paste the new hash into /home/radio/index.html, replacing the value of PASS_HASH.
The entire site is in git. Everything important is pushed to GitHub.
Audio archive: 200 files on Internet Archive (archive.org/details/choplogic-radio). Permanent. Free. Public.
Local staging copy of audio files: /Users/julio/Music/chopradio-archive/ (6.7GB). Keep or delete — it's redundant now.
Health data: browser localStorage only. Export manually before switching devices or clearing browser data.
Passwords: memorize them. They're in this doc, but this doc is gated by one of them.