Live on the App Store
Sep 2026 · v1.1
Tally: Family Rewards
A parenting app where adults log a child's good and bad moments, each one moves a points balance, and the balance is spent on goals the child is working toward. Warm and simple on purpose.
- Siri commands to log a moment or check stars. Logging needs Face ID or a passcode, so a child cannot talk the phone into awarding points.
- iCloud sync, a Kid Mode with its own PIN, an App Lock, and backups as plain JSON.
- Six languages, an optional Plus subscription through RevenueCat, and crash reporting.
- In TestFlight now: a Home Screen widget, Control Center controls, and optional photo proof for chores.
SwiftUISwiftDataCloudKitApp IntentsWidgetKitRevenueCat
Live on the App Store
Sep 2026 · v1.0
Chalkline: Site Photo Log
A job-site camera for contractors. Every photo is stamped with the job, time, street address and GPS position, and a whole job exports as one PDF you can hand to a client, an adjuster or a lawyer. The app is a camera. The report is the product.
- Each photo gets a SHA-256 fingerprint at capture. The report prints it, and the app shows whether a photo is verified, altered or has no fingerprint on record.
- Stamps are applied on export, so originals stay untouched. Annotations are stored as vectors for the same reason.
- Client sign-off on the device, an on-site banner when you arrive at a job, and a Shortcuts action for the Action button.
- Twelve languages, free and Pro tiers with StoreKit 2, 30 tests, and no third-party dependencies.
Swift 6SwiftDataCloudKitStoreKit 2MetricKitPDF rendering
Preparing for release
Sep 2026
Afterwards: Estate Checklist
When someone dies, nobody hands you a list. Afterwards is fifty-two steps for settling an estate in England and Wales, in the order they happen, with the deadlines that carry a penalty marked clearly. Nothing you enter leaves the phone.
- The content is a separate project. Every claim carries a source link and a checked date, and a validator fails the build if one is missing.
- Corrections reach people through a content feed that is checked against a SHA-256 hash before it touches a checklist, so a factual fix does not wait for App Review.
- One-time purchase after three free sections, with more than a hundred automated tests.
SwiftUIStoreKit 2Swift PackagePython toolingYAML content
Built, not published
Oct 2026
Tally for Android
The Tally app ported to Kotlin and Jetpack Compose in a single session. It keeps the same seven-table data model, and its backup format is shared with iOS, so a family can move a backup between platforms.
KotlinJetpack ComposeRoomGlance widgetWorkManagerBiometricPrompt
Personal experiment
Sep 2026
AirPlay TV
An Android TV app that turns the TV into an AirPlay receiver for iPhone, iPad and Mac. It mirrors the screen with hardware H.264 decoding, plays music-only AirPlay, and casts video through ExoPlayer. Android has no ALAC decoder, so I wrote one in pure Java and tested it bit-exact against Apple's encoder.
It builds on the open-source java-airplay library, and its licence ships with the project.
JavaAndroid TVMedia3mDNS