Skip to main content
← All work

Independent products · iPhone

Small apps.
Considered decisions.

Five apps I designed, built, and published. Each starts with an everyday moment and a specific way to make it easier.

The App Store links show current availability and release details. Selected interface images illustrate the product design; work described as in development awaits a corresponding release.

01 / React Native

Vape Quit Coach

Support that stays readable during a craving.

Vape Quit Coach is a solo-built iPhone app with quit tracking, journaling, breathing exercises, and online AI coaching. I designed and shipped the product in React Native and Expo. Its guidance supports reflection and coping; it does not measure biological recovery or replace professional care. Coaching uses external AI services rather than staying entirely on-device.

Vape Quit Coach selected interface

02 / React Native

Afterlight

A diary that feels like the nights it remembers.

Afterlight is a concert diary available on the iPhone App Store, built in React Native and Expo. Its interface brings concert records and personal reflections together. A broader Recovery Desk and improved portable backups are being developed separately; those next-release capabilities are not represented here as included in the current App Store build.

Afterlight selected interface

03 / Swift

Holdspace

One thing now. The rest can wait.

Holdspace is a native SwiftUI app for a lightweight personal queue. One item stays in focus while saved items wait; gesture actions move them through the queue. Queue records stay on-device. Website link previews and links you choose to open can contact external sites.

Holdspace selected interface

04 / React Native

Good News Bad News

A news session with an ending.

Good News Bad News is a React Native and Expo app with a finite daily pack, publisher links, a post-read balance check, and a local reading archive. A Cloudflare Worker selects and summarizes RSS material with Workers AI. Positive and difficult stories provide emotional contrast; the selection is not a promise of comprehensive coverage, political balance, or verified reporting.

Good News Bad News selected interface

05 / React Native

doomscroll

Make scrolling an occasion to review code.

doomscroll presents code as a swipeable review feed with progress tracking. GitHub imports bring repository material into the app. Cards and prompts are generated with on-device rules, not a remote AI model. The interface supports deliberate review; it does not promise mastery or measure learning effectiveness.

doomscroll selected interface