Blog
Design notes, devlog, and release announcements from building Berthly.
Berthly 1.2.1: SSH-forwarded builds, running-container export, and Kubernetes cleanup safety
Catches up to apple/container 1.2.1/1.2.2 — SSH agent forwarding for builds, filesystem export from running containers — plus Kubernetes containers no longer get swept up by Clean Up, and a fix for daemons silently stuck behind on patch updates.
Berthly 1.2.0: kernel boot arguments, digest-verified kernels, and a round of daemon-startup fixes
Catches up to apple/container 1.2.0 — kernel boot argument support, kernel archive digest verification — plus fixes for silently-discarded config, a false error on cancel, and stalled-looking startup.
Berthly 1.1.0: image-update badges, drag-and-drop builds, and a security pass
A feature release: Watchtower-style recreate for stale images, drag-and-drop Dockerfile builds, and a round of security hardening on top of six days of fixes since 1.0.1.
Drag a Dockerfile onto the window
Berthly can now start a build from a Finder drag alone — and the three small decisions that made it survive symlinks, disconnected daemons, and a fast second drop.
Recreate with the latest image
Berthly now checks your registries in the background and badges anything stale — plus the SwiftUI bug the feature's own test suite caught, where a changed digest never made it to the screen.
Made fast: designing the Berthly icon
How Berthly's app icon went from a square that wasn't ours to a bollard that is — three directions, a detour through the menu bar, and the details that don't show.
The half-height row: when makeFirstResponder interrupts a SwiftUI List
A container starts, its row moves to the RUNNING section — and arrives squashed to half height. A debugging story about AppKit focus changes landing mid-animation, and why the obvious fix wasn't the fix.
Berthly 1.0.1: now shipping as a DMG
A quick follow-up release that fixes the “Berthly.app is damaged” error some v1.0 users hit, by switching distribution from zip to DMG.