Colophon
How musics.name is built and published — files in git, PHP on shared hosting, no database, no CMS, no tracking.
This site is deliberately low-tech in the ways that matter for longevity, and deliberately modern in the ways that matter for the reader.
How articles are written
Articles are drafted with AI assistance, against a written house style that lives in the repository, and then reviewed, corrected and published by hand. The work that is human is the part that matters: deciding what the article should claim, checking the claims against the repertoire and the treatises, cutting what is not defensible, fixing the pitch examples, and refusing to publish what cannot be supported.
The pipeline reflects that split:
- Drafting. A draft is produced to the house style — the front-mattercontract, the supported Markdown subset, the level definitions and the bannedphrasing list in the content guide.
- Machine gate. A content linter refuses malformed front matter, unknowntopics, dead internal links, unplayable
[keys]examples and articles tooshort to be worth publishing. Pitch examples are parsed by the same code thatrenders them, so an example that cannot be played cannot be published. - Human review. The developer reads, corrects and, when needed, rewrites.Facts are checked against the sources each article names; obvious filler isremoved; anything that cannot be verified is generalised or dropped.
- Independent review. The launch set was additionally put through a separateadversarial fact-check pass, which found nine real errors — including a triadcredited with a tritone, a reversed sharp count, a root-position chorddescribed as a fourth-and-second inversion, and a swapped polyrhythm grid.Each was corrected and pushed.
- Publishing. A push is the publish action, so the correction history ispublic and a claim can be traced to the commit that changed it.
TL;DR: drafted with AI assistance, reviewed and published by a person who is accountable for it. If you quote the site, saying so is accurate.
Publishing
Articles are Markdown files in a git repository on the developer’s machine. Each one carries front matter — title, dek, topic, tags, date, level, related articles — and a body written in a small, strictly supported Markdown subset. Publishing is a git push over SSH to the production host; a post-receive hook checks the repository out into the document root. There is no admin panel and no database, which means there is nothing to log into, nothing to exploit for privilege escalation, and no state that can drift out of sync with the published text.
A content linter runs before a push. It fails on missing front-matter keys, unknown topics, dead internal links, malformed pitch examples and articles that are too short to be worth publishing. The pitch examples are parsed by the same code that renders them, so an example that cannot be played cannot be published.
Markup and rendering
Pages are rendered by PHP with a renderer written for this site: headings, paragraphs, lists, quotes, tables, fenced code and a custom block for playable examples. Raw HTML in article bodies is not supported — the escaping happens first and every tag comes from the renderer, so content can never inject markup. There are no dependencies and no package manager; a php -l pass and the route smoke test are the whole build.
Sound
Musical examples are not files. Each [keys] block renders a button that carries its pitches as data; clicking it synthesises the notes in the browser with the Web Audio API, using the same engine as the tools. That is why a page with six examples costs a few kilobytes instead of a few megabytes, and why the examples are pitched exactly as written.
Timing-critical work — metronome clicks and example playback — is scheduled ahead of time on the audio clock, the clock the sound hardware runs on, rather than by JavaScript timers.
Typography and assets
Two typefaces, both self-hosted as latin-subset WOFF2: Newsreader for text and headings, Inter for controls, labels and numbers. Images are served from this domain only; there are no third-party fonts, scripts, trackers or embeds, which also means there is no cookie banner to dismiss.
The agent surface
Because more and more of the web’s reading is done by software, the site publishes its own machine-readable forms rather than waiting to be scraped:
- — what this site is, for language models, in theconvention published at llmstxt.org; addsevery article as Markdown in one file.
- — a read-only JSON API with an [OpenAPI 3.1description](/api/openapi.json): the article index, full articles withheadings and FAQ, topics, tools, the release catalogue and search.
/articles/<slug>.md— the raw Markdown of any article.- and — RSS 2.0 and JSONFeed 1.1, both with full text.
- , and.
Privacy by construction
No analytics, no advertising networks, no social embeds, no fonts or scripts from third parties. Nothing is stored in your browser except your colour-theme preference, in localStorage, which never leaves the device. The only place personal data can appear is the web server’s own access log, which the host controls and rotates.