Receipts

How this site stays honest

Every personal site says nice things about its owner. This one has a rule about it, and the rule costs me things: sections I wanted and could not have, charts I built and deleted, numbers that came out less impressive than the round figure I had in my head. Here is the rule, what it costs, and how you can check any of it yourself.

The rule, in one sentence. Nothing on this site is here because it sounded good. If it is a number, it was counted. If it is a quote, it is what was actually said. If I cannot show you where something came from, it does not go up.

Numbers are counted, not estimated

The music page says 5,262 unique songs across 1,119 artists. That is not a guess and it is not rounded. It is the output of a script that reads my library export, strips the byte-order mark the export ships with, splits every line on the artist/title separator, deduplicates on the pair, and reports what is left. It also reports what it threw away: 5,515 raw lines in, 253 duplicates removed.

I mention the 253 because that is the part most people would quietly drop. A number is only worth anything if you also know what it excluded.

The same applies everywhere numbers appear. Song counts per artist come from the same export. Hours in games come from the platform's own figures. Costs on the infrastructure page are what I actually pay each month. None of these are estimates dressed as measurements.

What the rule cost me

This is the part that proves the rule is real, because a rule you never have to obey is just a slogan.

No listening timeline

The single most requested thing for the music page, and it does not exist. My library export is nothing but artist and title rows: no date added, no timestamp, no play count. There is nothing to plot a time axis against. I could have used line order as a stand-in and nobody would ever have checked, but I cannot prove that file is in chronological order, and a chart that might be fiction is worse than no chart.

No listening history section

A streaming-history block lived on the music page and was deleted. It was real data, honestly reported, and it described a service I do not use much. A real number measuring the wrong thing is still the wrong thing.

No audio-feature charts

Energy, danceability, valence: the kind of chart that makes a music page look scientific. I do not have that data, so there is no way to produce those charts except by inventing them.

Seventeen artists named as unknown

The genre galaxy connects artists who are genuinely linked. For seventeen of them I could find nothing verifiable at all. They are still on the map, listed as artists with no confirmed connections, instead of quietly given a plausible-looking line to somebody adjacent.

Every connection on the galaxy is sourced

The genre galaxy places artists near each other based on documented links, and "documented" means something specific: a song they made together, a tour they shared, a label they were both on, or something one of them said publicly about the other. There are 215 of those connections across 133 artists, and every single one has a concrete basis recorded next to it.

The positions are not decorative either. When new connections are researched, only the artists touched by a new link get re-simulated. Everything else keeps its exact previous position. Re-running the whole layout would look tidier and would be dishonest in the opposite direction: it would shuffle artists who gained no new information at all.

Quotes are quotes

Where this site quotes me, it quotes the original, not a tidied-up memory of it. The 2017 headphone review on the music page is the post as I wrote it, word for word. The nine Instagram bios on the trans page are the exact strings, in order, with the dates the export recorded. The Reddit album ranking is copied out, not paraphrased.

This matters more than it sounds. A paraphrase of your own words from nine years ago is a thing you wrote today about somebody you used to be. The point of putting them up was that they were already true before this site existed.

Opinion is labelled as opinion

Not everything here is measurable, and pretending otherwise would break the same rule from the other end.

The emotional compass on the music page places genres and artists on axes of calm-to-intense and melancholy-to-bright. The circle sizes are real song counts. The positions are entirely mine, and the page says so before the chart, not in a footnote after it. The meme-detection label on the old wall said it was a guess. Where a section is my read on something and not a measurement, the sentence introducing it says which.

What happens when I get it wrong

The changelog is not a marketing document. It records what broke, including things that were live and wrong for a while, and it names them plainly.

Recent examples, all of them mine: the infrastructure page spent a day claiming five running game servers when two were up. The trans page promised it would never publish a timeline while displaying one, until the paragraph was rewritten to say where the line actually sits. A batch of contractions shipped twenty-six broken sentences to the live site. Each of those is written down where anybody can read it.

Publishing your own corrections is the cheapest possible honesty signal, and almost nobody does it, because a changelog full of fixes looks worse than a changelog full of features. It is not worse. It is the only way to tell whether the rest of the page is trustworthy.

What the machine checks before anything goes live

Rules that depend on me remembering them are not rules. The deploy script refuses to publish if any of these fail:

  • Numbers must match their data. Every counted figure is read out of the generated data file the page actually loads, then compared against the sentence that asserts it. If a build changes a total and the prose around it is not updated, the deploy stops.
  • Referenced files must exist. No broken images, no dead stylesheets.
  • Cache-bust versions must agree. One page requesting an old copy of a shared file is how corrected code silently never loads.
  • Heading levels must not skip, and every page must have a main landmark, so a screen reader gets a real structure.
  • House style. No em-dashes in prose. No contraction stranded at the end of a clause, which is a typo that reads as carelessness.
  • Private files must not ship. Environment files, keys, certificates, backups and the runbook are excluded by pattern, then checked again before upload.
  • Gated pages must carry no social card. A preview image is an instruction to unfurl, and those pages should not announce themselves in somebody else's group chat.

Check me

None of the above is worth much if you have to take my word for it, so:

  • The music page quotes two real, dated Reddit posts of mine in full. The permalinks aren't rendered as links: Reddit shows the poster's account on the post itself, and I'd rather the quote be public without my account being one click away, but the words are exactly what I wrote.
  • The galaxy shows the basis for a connection when you click a star.
  • The infrastructure page lists what runs, what does not run yet, and what it costs.
  • The changelog records what was wrong and when it was fixed.
  • Anything sourced from somebody else's research is attributed to them, not absorbed into my own voice.

If you find something on this site that is wrong, I would genuinely rather know than not. The contact page works, and a correction is a favour, not a complaint.