Projects

All the things I've built, one day at a time.

1 Day

Sicht: Übersicht, Rewritten in Swift

Übersicht puts widgets on the Mac desktop and has done it well since 2014. It's also in maintenance mode, ships its own Node.js server, and runs every widget's command around the clock, even with the display asleep. Sicht is a from-scratch Swift rewrite that runs the same widgets unchanged: one process, 13 MB instead of 259, and widgets that pause when nobody can see them.

swiftmacosappkitwebkitwidgetsopen-sourceesbuild
Sicht app icon: a lowercase u wearing glasses as its umlaut dots, on a pale lavender-to-blue tile
Multi-day

Mother: A Command Center for Too Many Claude Sessions

Dozens of features, a handful of them hot on any given day, and Claude sessions scattered across a Mac, a Windows box and a Linux machine. Mother sorts them into lanes, knows which sessions are running and which are waiting on me, and lets Claude read and write the lanes through its own MCP server. Named after the Nostromo's computer, lamps and all.

swiftmacosappkitswiftuimcpclaude-codeproductivity
Mother app icon: an orange tile with a four-by-four wall of lamps, three of them lit
2 Days

Skiff: A Native Mac Client for Seafile, Built on Seafile's Own Engine

I like Seafile. I don't like its Mac client, and the alternatives are thin. Skiff keeps Seafile's own sync daemon, replaces the Qt app around it, and rebuilds the rest in Swift: a menu bar panel, Finder badges, a file browser and share links. Two days, 26,000 lines and 1,500 tests later, it's the client I use every day.

swiftmacosappkitswiftuifinder-syncseafileself-hosted
Skiff app icon: a glowing folded-paper boat on a dark navy tile
2 Days

Voight: My First Project, Rebuilt as a Native Mac App

iPhone Explorer was my first vibe-coded app: Node, Express, a browser tab and libimobiledevice from Homebrew. Sixteen months later I rebuilt it in Swift with zero dependencies on the device side. Voight talks to the iPhone directly, scores privacy labels in any language, removes apps for real, and answers questions from Claude through its own MCP server.

swiftmacosswiftuiiphoneprivacymcp
Voight app icon: an iPhone outline in front of an amber sun, with an origami unicorn
1 Day

Offload: The App Nobody Thought Of, via the App That Crashed

A Mac app auditor in my Threads feed crashed on first use, turned into a Claude skill in an hour, and the skill's advice exposed the real gap: macOS has no way to offload an app the way iOS does. Now it does. Plus a lesson about vibe-coded product management.

swiftswiftuifinder-syncclaude-skillpythonmacos
Offload app icon: a white cloud with a downward arrow on a bright blue tile
2 Days

Zen: A Clipboard Manager Where the Best Interaction Is None

A new clipboard app caught my eye with a real idea: convert what you paste to what the app understands. Its answer was a popup with 39 actions. Zen's answer is zero interactions—enrich at copy time and let macOS negotiate the rest. Named after the Liberator's computer in Blake's 7.

swiftmacosappkitswiftuiclipboardmarkdown
Zen app icon: concentric neon hexagons on a dark tile, teal fading to violet
1 Day

TARS: One Thing Really, Really Well

macOS 27 removed the hook every menu bar manager depends on, and watching them fall apart made me realize how much of their bloat I never wanted. So I built a menu bar hider that does exactly one thing. Named after the Interstellar robot—folds to a slab, unfolds on demand.

swiftmacosappkitswiftuimenubar
TARS app icon: four neon vertical bars of varying height on a dark tile, like a folded slab
1 Day

Esper: The Desktop from That YouTube Video, For Real

Scott Jenson demoed a desktop where the focused window sits center stage and everything else parks at the edges as small live windows. I watched the talk, then built it for macOS—with mirrors you can actually click.

swiftmacosscreencapturekitaccessibilitywindowing
Esper app icon: a dark tile with a neon rounded-square outline fading from teal to magenta
1 Day

Cloak: The Sidequest Esper Forced on Me

Every time Esper opened its stage, Do Not Disturb switched on by itself. The culprit was Muzzle, an abandoned utility I'd forgotten I installed. The paid alternative is $12.99. This is the age of personal apps, so I built my own in an afternoon.

swiftmacosappkitmenubarshortcuts
Cloak app icon: a neon-outlined screen holding a bell and a monitor, on a dark tile
1 Day

Bespoke Menu Bar: Reshaping Stasis and Netfluss Into Apps Just for Me

Two macOS menu bar apps in a week: added features to a battery app that was 80% there, stripped features from a network monitor that was 300% there. What actually changed about open source in the AI-coding era: 'close enough' is now the perfect starting point.

swiftmacosmenu-baropen-sourcebatterynetworking
Stasis and Tachyon app icons side by side: a neon battery ring and a neon network graph, both on dark tiles
1 Day

UGREEN LEDs That Actually Mean Something: An Unraid Plugin

Migrated my Unraid NAS to a UGREEN DXP4800 Pro after the old motherboard died. The LEDs on the front did nothing interesting. Forked a driver plugin so the power LED shows array health, the network LED breathes with traffic, and the disk LEDs become a progress bar during parity checks.

unraidbashphpnaslinuxsysfs
1 Day

Sleeve: A Native macOS VNC Viewer Because Nothing Else Worked

Built a Swift VNC client in a day after Screens couldn't type quote marks to a Windows box and Apple's Screen Sharing rendered the remote desktop wrong. Named after the bodies in Altered Carbon.

swiftmacosappkitvncmetalkeychain
Sleeve app icon: a brushed metal porthole framing a glowing blue cursor arrow on a grid
1 Day

Wintermute: A TUI for macOS launchd Management

LaunchControl went paid and kept growing. I use it once a month. Built a focused terminal replacement in a morning with Go and Bubbletea—named after the AI from Neuromancer.

gotuimacosbubbletealaunchd
Multi-day

Birgit Studio: A Desktop CMS for Pottery

A family member wanted to show her pottery online. Built a full desktop CMS with Electrobun and Bun that manages creations, edits images, and publishes to Cloudflare Pages—in one morning.

electrobunbunreacttypescriptdesktop
Birgit Studio app icon: a terracotta pot beside a pencil on a pale tile
1 Day

Drift: Cross-Platform Clipboard Sync with End-to-End Encryption

Building a clipboard sync tool between macOS and Windows—two different languages (Swift and Go), one shared protocol, and end-to-end encryption via 6-digit PIN pairing. Named after Pacific Rim's neural handshake.

swiftgomacoswindowsnetworkingencryption
Drift app icon: a letter D on a blue-to-violet gradient disc, set on a dark tile
1 Day

Bishop: A TUI for npm Package Management

Built a terminal UI for managing npm packages after topgrade kept showing cryptic warnings with no context about where issues came from.

typescriptinkreacttuinpm
2 Days

Holly: Personal Presence Sensor for HomeKit

ESP32-C6 BLE sensor that detects when specific people are in the room, integrated with HomeKit via Matter—enabling personalized lighting automations.

esp32blehomekitmatteriot
1 Day

Lock: Building a macOS Menubar App Without Learning Swift

Building a Bluetooth proximity screen lock for macOS—AI agent chose Swift/SwiftUI stack, wrote all the code, and guided me through Apple's code signing and notarization process. Built in one day without touching Swift syntax.

swiftmacosbluetoothswiftui
Lock app icon: a white padlock carrying a Bluetooth glyph, on a teal-to-violet gradient tile
1 Day

Welcome to one.daybuilds.ai

The first post - explaining what this site is about and why I'm documenting my quick builds.

metaannouncement
1 Day

Building This Site in a Day

Building my.daybuilds.ai with Astro 5, from zero to deployed on Cloudflare Pages—including content schema, theme system, and RSS feed.

astrowebmeta
1 Day

iPhone Explorer: What's Actually on My Phone?

A Node.js web app that connects to iPhones via USB, lists installed apps with metadata, and scores privacy concerns—built in one day because a family member needed help deciding which apps to delete, and the tool didn't exist.

node.jsiphoneprivacyweb-app