wholeconductors.com is a domain parked for an inside joke — a nod to a Bulgarian politician's remark about building a factory for semi-conductors this year, and whole ones next. A few of us find it funnier than is probably defensible. One day it'll host something real. Until then, the site is a single portrait and one sentence in Bulgarian.
Below is a tour of how that is assembled, mostly so future-us remembers where everything is. I should warn you that this is a great deal of reading for a page that ultimately serves one JPEG and twelve words of Cyrillic. Do carry on, though. Don't mind me.
wholeconductors/ ├── public/ # everything served at wholeconductors.com — static │ ├── index.html # the whole site: dark page, portrait, Bulgarian │ │ # quote; tap the quote → English gloss appears │ ├── about/index.html # this page │ └── portrait.jpg # the man himself — also used as favicon + og:image ├── docs/ │ └── deployment.md # rsync recipe + nginx notes, the only ops knowledge │ # that isn't derivable from the code itself ├── .claude/skills/ │ └── using-exe-dev.md # exe.dev cheat-sheet, mirrored across sibling repos ├── CLAUDE.md # TOC / index of docs — kept short on purpose ├── README.md # what this is + file layout └── .gitignore
No build step. No framework. 23 lines of CSS, one image, twelve words of Bulgarian. The HTML is lovingly hand-typed, which is more than anyone asked for.
exe.dev terminates TLS at its edge for every hostname that resolves to a running VM, so there's no certbot here and nothing to renew. nginx inside the VM does hostname-based routing among the other, mostly more purposeful, sites that share the box. Life is hard enough without having to rotate TLS certs by hand.
Three remotes for a one-page joke site, I know. The pattern is
recycled across several of my repos — one bare repo on each of two
physical Macs (fast and offline-durable) and one private copy in the
cloud (catastrophe-durable, assuming the cloud also still exists, which
one shouldn't assume forever). A global git pushall alias
visits all three in order, with the stoic patience of something that
has nothing better to do.
DNS is at Squarespace. Three records do all the work:
ALIAS at @ → <vm-host> (the apex)CNAME at www → <vm-host>CNAME at about → <vm-host> (this page)
DNSSEC is off — Squarespace's ALIAS type (a synthesised
apex CNAME) is incompatible with it. You find this out by wanting
ALIAS to work, then having it not work. Which is also a serviceable
summary of most things.
From the repo root:
chmod -R u=rwX,go=rX public/ rsync -avz --delete \ --exclude .git --exclude .DS_Store \ public/ <vm-host>:/var/www/wholeconductors/
The chmod step is there because images pulled off Signal
or AirDrop arrive mode 0600; rsync preserves those perms
faithfully and nginx (running as www-data) returns 403
on them. macOS ships openrsync which doesn't support
an inline --chmod flag, hence the pre-step. Nobody
should have to know this. Everyone eventually does.