Native Apps
I design and ship real, native apps — end to end, from the first sketch through store review and the updates that follow. Each app is one shared core, expressed in the native idiom of whatever screen it's on, with no servers to run. Here's what I've built and what building it taught me.
Archive Watch
A cinematheque for the public domain. Archive Watch turns the Internet Archive's ~30,000 public-domain feature films, classic TV, silent cinema, animation, newsreels, and vintage commercials into a curated, ad-free viewing experience with the dignity of a modern streaming service and none of its machinery — free, no account, no tracking, on every screen you own.
This year's work was learning to build for the living room: the focus engine and ten-foot type of a TV interface, a streaming layer that survives flaky origins without a stall, and a Roku channel written in BrightScript that had to run on a 2011 player — which meant measuring memory and decode cost instead of assuming. Along the way it gained deterministic Live Channels (a TV-guide grid that plays the same on every device), Watch Together over SharePlay, offline downloads, live on-device captions, and a Creation Studio on the Mac whose supercut engine searches every subtitle line in the archive and cuts the moments you name.
It's the fullest expression of how I build: a single SQLite catalog published over HTTP, sync through each ecosystem's own cloud rather than a server of mine, a published rights audit with numbers — every title that fails it is hidden and counted, not quietly kept — and a self-healing content pipeline that runs entirely on scheduled GitHub Actions — no backend to pay for.
Tidbits Trivia
The whole of Wikipedia, turned into fact-checked trivia — where every question teaches you something. Nearly 100,000 questions across dozens of question types, generated and fact-checked from Wikipedia and Wikidata; a deterministic Daily that is byte-identical across Swift, Kotlin, JavaScript, and C#; serverless online play between Apple and Android; no account required and no data collection.
Two things arrived in 2026 that most trivia apps never attempt. Tidbits Live turns a Mac or a Windows PC into a pub-trivia host: build a night (or import a Kahoot), drive a projected big screen, and let every team answer on their own phones through any Tidbits app or the web — with wager rounds, jokers, pictures, clips, live scoreboards, and a phone remote for the host. Hosting is free forever. And Tidbits in iMessage lets you send a round to a group chat and have everyone play in the thread.
The desktop version taught me the most this year. The Windows app is native C# and Avalonia: developed from the Mac, rendered and tested headlessly in CI so every change is observable without a hand-off, then verified on a real Windows machine before it ships. It's a good example of the discipline underneath all of these apps: the shared game logic is one algorithm mirrored in four languages, and a test proves the mirrors agree.
The App Portfolio
Each app starts from a real need and ships as a genuinely native experience wherever it lives — SwiftUI on Apple devices, Jetpack Compose on Android, a zero-dependency PWA on the web, and the native toolkit of each TV and desktop it reaches.
Bsky Dreams
A custom Bluesky client built for learning and connection over passive scrolling.
- Force-directed Network Constellation for topic discovery
- Depth-colored conversation threading & hybrid multi-source feeds
- Cross-device sync through your own AT Protocol repo — no server
- Zero-dependency: raw XRPC, Swift 6 / SwiftUI, vanilla JS on the web
Boba Playbook
A fan-built companion for the Bo Jackson Battle Arena trading card game.
- Browse 31,000+ cards (including the full Tecmo Bowl Edition set) with live eBay market pricing
- On-device card scanning via Apple's Vision framework and ML Kit — no image ever uploaded
- RealityKit 3D "Hero Shot" card animations on iOS
- Collections & decks that sync across devices and share as public pages
Try One
If you'd like to see the work rather than read about it, here's where each app lives.
| App | Apple App Store | Google Play | Amazon Appstore | Roku Channel Store | Microsoft Store | Web |
|---|---|---|---|---|---|---|
| Archive Watch | iPhone, iPad, Apple TV, Mac | Android, Google TV | Fire TV | Roku | — | archivewatch.org |
| Tidbits Trivia | iPhone, iPad, Apple TV, Mac | Android | — | — | Windows | tidbitstrivia.com |
| Bsky Dreams | iPhone, iPad | — | — | — | — | bskydreams.com |
| Boba Playbook | TestFlight beta | Android | — | — | — | bobaplaybook.com |
Need help with any of them? There's a single support page for every app.
How I Build: One Codebase, Many Screens
Shipping one app to phones, TVs, desktops, and the web without it becoming four apps is a systems problem. I solved it once and turned the solution into an open-source starter template that grows with the apps.