Projects

Case studies

What did the real system teach us?

Short, evidence-based records of the decisions, failures, recoveries, and boundaries worth carrying into the next project.

4 projects · 9 parts

Across projects

Four projects, four different boundaries.

Each project study starts with what was actually attempted, then records the strongest result and the lesson that should survive the implementation.

Resolved · 0.1.6

Private Reel

Making the Mac companion update itself safely

The first automatic-updater release passed build and signature checks but could not launch on the Intel receiver Mac.

ResultThe repaired app completed a real signed update and visible agent restart while preserving all 77 Keep jobs.

Carry forwardBuild confidence is not boundary confidence; launch, publishing, vendor integration, and recovery each need their own real-system test.

Limited beta · known gaps

Playport

Proving account access at the boundary that owns the claim

A small login comparison became a real public beta with durable accounts, recovery, passkeys, email, parent-managed teen profiles, and an installable phone companion.

ResultFour login methods reach one account system, and physical phone approval and denial pass in production; camera-based QR reopening and deliberate offline recovery remain open.

Carry forwardName evidence as proved, covered, inferred, or open; a successful UI, build, or provider request only proves the boundary it actually exercised.

Complete · 0.2.1

Fire TV Remote

From manual ADB commands to one-click local control

A fragile IP-dependent screen-control workflow became a universal Mac launcher plus a narrow Fire TV discovery companion, packaged in one versioned repository and release.

ResultBoth Macs recovered from intentionally bad saved state and opened a controllable window; companion 0.2.1 also repaired the soft 4K artwork with a physically verified high-resolution asset.

Carry forwardAutomate discovery and recovery without bypassing physical authorization, and verify the running artifact and real display—not only metadata.

Private · Version 3

Pings

Making unread state clear without making everything urgent

The Frontend Mentor notification challenge became a focused study of read hierarchy, filtering, browser-local continuity, and an honest caught-up state.

ResultA private responsive release now supports individual and bulk read actions, All and Unread filters, refresh persistence, keyboard focus, and a clear reset path.

Carry forwardNotification state should communicate what still needs attention through redundant hierarchy and explicit scope—not urgency styling or implied server state.

Inside Private Reel

A case study for each product part.

The parts are separated so a later project can reuse one lesson without importing the whole Private Reel architecture.

Series & watch

Verified with Mac1 offline

Playing kept series after the source sleeps

Kept videos were correctly typed as series on Mac2, but playback still depended on the original source-library label.

Decision
Route and play by media meaning, preserve series grouping through Keep paths, and stop treating one folder name as the product contract.
Result
Mac2 browsed and played multiple kept episodes while Mac1's agent was offline.

LessonConsumers should depend on semantic type and capability, not the name of the system that first produced the file.

Cooking

Production fix verified

Recovering recipes through capability-aware peer fallback

The connected Mac could answer discovery while an older Cooking endpoint returned 404, leaving a blank page even though another Mac held the recipes.

Decision
Try the connected, discovered, and remembered peers directly; use the first reachable Cooking catalog and keep every asset request on that selected Mac.
Result
Production loaded recipe families, images, variants, and video from the capable peer without sending the catalog or files through Vercel.

LessonReachability is not capability; fallback must verify the specific job a peer can perform.

Keep & Mac2

77 transfers verified

Making selected categories survive a sleeping source

Mac2 needed Series and Recipes to remain available when Mac1 slept, without confusing Keep with a same-device download or unsafe deletion.

Decision
Use receiver-specific category preferences, verified peer pulls, resumable state, and an optional source-removal choice that stays off by default.
Result
Mac2 retained 77 completed transfers with zero failures, and Mac1-off Series and Cooking verification passed.

LessonCopying, verifying, and removing are separate state transitions; the interface should never collapse them into one ambiguous action.

Mac companion

0.1.6 operational

Removing the repository from normal operation

The local agent originally required repository commands, while a standalone app also had to preserve folders, Keep history, private networking, and safe updates.

Decision
Bundle the runtime and agent, keep Tailscale separately approved, and make agent restarts visible, version-checked, transfer-aware, and recoverable.
Result
Mac2 installed through the signed updater, reported the correct Tailscale state, and restarted a healthy versioned agent without losing Keep history.

LessonA companion app should own repeated local operations, but every operating-system and vendor boundary still needs exact-artifact testing.

iPhone live sharing

Shipped in repository

Sharing live phone media without inventing cloud storage

Let the gallery browse current phone photos while keeping the phone temporary, foreground-bound, and separate from persistent Mac preferences.

Decision
Model the phone as an ephemeral peer whose catalog and media exist only while sharing, with no hosted storage and no automatic Saved-state ownership.
Result
The live-peer protocol, restore path, and privacy contract are implemented without turning the phone into a second gallery database.

LessonTemporary sources need honest availability and ownership semantics instead of pretending to be always-on servers.

Books

Available

Keeping reference reading separate from the media library

Saved reading needed a stable home without becoming another media filter or competing with the primary library task.

Decision
Give books a focused destination with one primary reader action and keep source access secondary.
Result
The reference shelf remains easy to find while the gallery's browse controls stay about personal media.

LessonA destination with a different job should be navigated to directly, not disguised as another filter in an unrelated collection.

Projects

Four projects curated

Publishing an index without publishing the vault

Bring active projects together in the gallery without exposing Obsidian notes, repository paths, private URLs, or automatic vault contents.

Decision
Maintain a small reviewed manifest containing only public-safe purpose, status, focus, destination, and case-study links.
Result
Private Reel, Playport, Fire TV Remote, and Pings share one launcher while their working notes remain local.

LessonAn index is a deliberately reviewed publication surface—not a synchronization shortcut.

Shared experience

Gallery-wide pass

Treating reliability and accessibility as page design

Independent pages accumulated different navigation, focus, loading, polling, and recovery behavior even when they shared the same private-agent model.

Decision
Review the complete human journeys, reuse shared navigation and states, preserve last-good data, and verify semantic structure at desktop and phone widths.
Result
Gallery, Keep, Cooking, Series, Watch, Books, and companion surfaces now share clearer recovery and navigation expectations.

LessonA page is not complete when its happy-path content renders; interruption, return, keyboard use, and stale data are part of the interface.