Devlog
Short build logs and hard-won tricks from the workshop.
RSS FEED-
The cube solver that refuses to be confidently wrong
cubeconjure reads a Rubik's cube through your Mac's camera and tells you how to solve it. The hard part was never the solving — it was reading six colors honestly under real light. This is the story of how 'just read the stickers' turned into a lesson about not being confidently wrong, on either side of the camera.
-
Why your Mac cleaner found 47 GB (and where it really went)
A friendly teardown of how black-box Mac cleaners work — the big scary number, the invisible delete, the one thing almost none of them tell you about APFS snapshots — so you can judge any cleaner, including ours.
-
The despair that became a library
bleedblend started as a bug in reef — a sticky banner whose blur kept getting clipped at the notch. Instead of fighting Safari's chrome, we learned to paint it on purpose. This is the rabbit hole we fell down so you don't have to.
-
I wrote a Swift overlay to black out my menu bar. macOS didn't even look at it.
I wanted a black menu bar to hide the MacBook notch — but in Light mode, keeping my daily-shuffling wallpaper. It felt like a tiny app waiting to be built. It wasn't. Here's the teardown: why Apple removed the standalone dark menu bar in Mojave, how TopNotch 'works' by quietly freezing your wallpaper, a two-experiment proof that the menu bar samples your wallpaper and nothing else, and why a bright wallpaper and a black menu bar are the same pixels fighting over one color.
-
The browser already ships a table engine
How our markdown editor got real in-grid table editing — pixel-aligned CJK columns, Tab between cells, Enter for new rows — in 250 lines of vanilla JS, by locking the syntax instead of building a widget.
-
Microsoft Teams uninstalled itself but kept my microphone hostage
FaceTime showed my mic working — the level meter moved — yet the person on the other end heard nothing. The culprit: a virtual audio driver Teams left behind when it was deleted years ago. Here's how to find and evict an orphaned HAL plugin.
-
Fifteen years of Trello, then a plugin of a plugin
The origin of tugtile: Trello slowly grew heavy, obsidian-kanban went quiet, and after one too many plugins written for a plugin, rebuilding the whole card table was the only move left.
-
Two Astro gotchas I hit building this very blog
Wiring up a multilingual Astro blog, two content-collection traps cost me a couple of rebuilds: a frontmatter `slug` that silently collapsed three posts into one, and `getStaticPaths` running in a scope that can't see your other frontmatter consts.
-
Your Mac has two Downloads folders. Here's how I made them one.
macOS keeps a local Downloads folder; iPhone and iPad save into a different one inside iCloud Drive. They never sync. Here's the slightly-cursed symlink trick that unifies them — plus a teardown of the one icon you can't get back: how Desktop & Documents keep their glyph in iCloud, why Downloads can't (a SIP-locked xattr and a two-name allowlist), the one-line fix only Apple can ship — and the sting in the tail: why the symlink quietly sends AirDropped files to /private/tmp, where a nightly cleaner deletes them after three days.