What I’m building now.
Statim is a messenger where your account is a key on your device. Kestrel is an email client for the Mac where every action is one key away, and ProofTrail runs a company’s SOC 2 and ISO 27001 program from its own server. Keepbreaker and Keepwar are three-minute battles for iPhone with the same soldiers: a lane battle, and a tower defense where one player attacks the keep and the other holds it.
Statim
iOS, Android, macOS, Windows, Linux
An encrypted messenger whose account is twelve words generated on your device. No sign-up, no phone number, no email, and no backend for anyone to subpoena, sell or breach. The same phrase is an Ethereum, Bitcoin and Solana wallet.
XMTP, Nostr, Status, Telegram and Matrix chats share one list, and every chat says which protocol it runs on and what that protocol actually protects.
One Expo and React Native codebase for every platform. The desktop app is its web export in a Tauri window. Telegram runs over TDLib and Matrix over matrix-rust-sdk.
Wallet, dapp browser, market alerts and bots are plugins that ship switched off. Everything a plugin does is a slash command, and anything that signs shows a review step first.
Keepbreaker
iPhone, on the App Store
A 1v1 lane battle. Send soldiers down three lanes, push the front line and topple the enemy tower before the three minutes run out.
Glory from each kill evolves a whole line of soldiers mid-match, militia to paladin, rider to griffin rider. Evolutions last one match, so every battle starts even.
Every soldier has a name and earns an epithet after three kills. A catapult that hits a tower for 400 damage becomes Old Maud the Wallbreaker.
Swift, SwiftUI and SceneKit. The rules live in their own GameCore package with its own tests. Play a ranked ladder of bots, or TypeSafe’s Jev AI.
Keepwar
iPhone, coming soon
A 1v1 tower defense on Keepbreaker’s soldiers. One player sends soldiers up a winding road to break the keep. The other builds towers and walls to hold it for three minutes.
Soldiers you buy wait at the gate, out of sight, until you press Send. Gather a big wave, or send a small one first to draw the towers’ fire. The defender’s scout tower shows more of what is coming with each level.
Five towers beside the road and two kinds of wall across it, each with an answer: mage towers ignore armor, and only ballistas hit the griffin riders that fly over walls.
Training against the bots works today, as either side. Ranked online battles come next, with each account playing one side. Swift, SwiftUI and SceneKit, with the rules in a KeepwarCore package that also runs bot-vs-bot balance reports.
Kestrel
Mac, macOS 15 or later
A keyboard-first email client for the Mac. Every action is one key away, the inbox splits into what matters and the rest, and mail goes straight from your Mac to Gmail, Proton Mail, Fastmail, iCloud or any IMAP account.
Press H and a conversation leaves the inbox until a time you type, like “8 am” or “3 days”, or comes back only if nobody has replied. Kestrel Command finds any action by name and shows its key for next time.
Kestrel AI runs on Apple Intelligence, or on an Anthropic API key you add yourself, with no Kestrel service in between. Shared conversations and comments run on a small server you deploy on Cloudflare Workers’ free tier.
A Swift app that updates itself through Sparkle. A license is $20 a year for up to three Macs, and a demo inbox lets you try it first with no account.
ProofTrail
Self-hosted, on a Linux server with Docker
Compliance for SOC 2, ISO 27001 and 19 other frameworks, on your own server. It checks your people, devices, access, code, cloud and vendors every day, turns each gap into a task with an owner and a deadline, and keeps the evidence for your auditor.
Four views of one program: the compliance workspace, an employee portal for policies, training and laptops, an auditor’s view of the evidence, and a public trust center with live control status.
Frameworks, controls, checks and policy templates are YAML and Markdown files that ship with it. Integrations, a device agent for macOS, Linux and Windows, imports and webhooks feed the checks.
One Docker image runs the web server, the queue worker and the scheduler, with SQLite as its only infrastructure. It costs $20 a year per installation, and the source is published under the Elastic License 2.0.
Earlier
At Status, from 2018 to 2019, I worked on Embark, a framework for building decentralized apps on Ethereum and IPFS. Older public repositories are on GitHub, and the jobs in between are in the CV.