xity.dev
an engineering journal, glossy & translucent
an engineering journal, glossy & translucent
software, wet and luminous
a workshop of one — written from the inside of a bubble
Three-dozen capsules drift in an orbital grid. Each one holds a thing I built, broke, or thought about on a bright afternoon.
pub fn push(&self, v: T) -> Result<(), T> {
let h = self.head.load(Acquire);
let t = self.tail.load(Relaxed);
if (h + 1) & self.mask == t {
return Err(v);
}
unsafe { (*self.buf[h]).write(v); }
self.head.store((h+1) & self.mask, Release);
Ok(())
}
One writer, one reader, zero locks. Benched 240M ops/s on my M2.
A build system is a promise that the next version of you will remember what this version meant.
— from the journal, a rainy tuesday in march
hover to bloom
the packet is the mood of the wire
The dominant aesthetic of our decade is the flat rectangle. I understand why. Flatness performs well. Flatness renders in 6KB. Flatness is legible to screen readers, to CI pipelines, to quarterly reports.
But flatness is also a lie about what software is. Software is lit. It has mass, memory pressure, thermal profile, an inside and an outside. A well-made program is humid — the air around it is denser than the air around a bad one.
xity.dev is an attempt to render that density as pixels. The glass is not nostalgia; it is an honest visual metaphor for a thing that has weight.
a 480-line process supervisor with adjustable restart jitter. spawned ~18k children before I retired it.
mist run --jitter 1.8s ./bin/daemon
Touch the controls. The whole page listens.
drag to adjust blur
warm or cool the sky
click to re-run
Skeuomorphic glass on a shallow pond. Every knob is wired to a CSS variable. Nothing here is decorative.
Small entries from the workshop. Each one settles like a bead of rain.
A good error message names the thing that went wrong, the reason it went wrong, and one action the reader can take. Three sentences at most. I rewrote every panic in the storage engine this week; the patch was +380/-112 and half of the deletions were apology.
Spent a full Saturday benchmarking an fsync that, it turned out, the WAL layer below me was already calling. Ninety minutes of perf record, eighty of reading kernel source, forty of staring out the window. I am paying off the compounding interest on a comment I did not write in 2021.
Built mist as a weekend joke — a process supervisor whose restart interval drifted slightly, so two crashing services wouldn't synchronise their thundering herd. Three months later a coworker deploys it to production. The joke is load-bearing now. I owe it tests.
A config file is a contract between two versions of the same person. One version is writing it, possibly in a hurry. The other is reading it in an incident, possibly at 3am. Every key is a sentence across time. TOML wins over YAML because it refuses to be cute.
Rewrote a 2,100-line b-tree implementation down to 640. The interesting part: the rewrite is strictly slower on random inserts — but the read path is 2.4× faster, and the read path is what I care about. Sometimes a faster program is the wrong program.
Made coffee. Read an old paper on cache-oblivious algorithms (Bender et al., 2000). Started a napkin sketch of a write-optimised index. Didn't write any code. A day can be productive without producing a diff.
xity.dev is a single HTML file. No frameworks. No analytics. No CTA. Hand-built in Space Grotesk, Lora, JetBrains Mono and Fraunces. The sky you're looking at is drawn by a canvas that re-tints itself against your scroll position — the page is a small sundial.
thanks for walking through.
built with backdrop-filter and stubborn optimism · © 2026