From first commit to store approval. All five are live right now, all five on the web. famula, Tavo and Tonecraft are on the App Store and Google Play. cura, the newest, has its apps in App Store review. Every one of them is open to try.
famula is your partner for the everyday things that quietly eat your time and money. Tell it what you would like looked after, connect an account, and it gets on with it, even while you are away.
It notices what you would want to know before you do: a bill that crept up, a subscription you stopped using, a refund that never came through. Then it follows through, and everything it does is written down as it happens, so you can see what it did, or watch while it works.
cura is a place for what is on your mind. Speak a thought or type it, on whatever is nearest: your phone, your watch, your computer or a browser. cura keeps it, and you find it again in order.
What you say arrives written, punctuated and tidied, in your own words. Each note is sorted, and the dates and tasks inside it come forward on their own. Every earlier version is kept, so nothing you write is lost. A note you mark private is encrypted on your device and readable only by you.
What is alive near you at the hour you open it: places open now, events under way or about to start, and every New York neighbourhood a tap away. No sign-in. Places are ranked on what is true of them right now, never on how many people vouch for them.
The hard part was never the map. It was making a cold-start location product feel alive in any city on the first open, which meant pulling several event sources into one schema and filling a city's events the moment someone first opens the app there. Ask Tavo answers in plain words and names only places it has just looked up.
Failed payments, expired cards and silent churn cost subscription businesses real money every month. StripeRescue notices a failed payment within seconds and emails the customer in the business's own name, with a reminder at three days and a last note at seven, each one click from Stripe's own page to pay. A business can also drop its Stripe invoice export on the page and see what failed, read in the browser and never uploaded. It is in early access, attaching the Stripe account a business already bills through on request.
The interesting half is the second product inside it, Auto-Fix. For apps on Next.js or Vite with Supabase, including the ones AI builders produce, it proposes a page where customers update their card and a notice when a payment has failed, then checks the code every day so the Stripe integration stays current. Every change is proposed for review first. Two integrations, two very different trust boundaries, one onboarding that has to feel safe enough to connect both.
Rehearse a hard conversation before you have it. Describe the situation, choose your intent and tone, then rehearse six turns: at each one, read what you could say and pick from three plausible ways they might answer. You leave with a forecast of how it could go, with a stated confidence, and a closing message you can edit and send.
A different shape of problem from Tavo: no map, no third-party data, but a stateful multi-turn LLM flow that has to stay coherent across turns and degrade safely when the model does something unexpected. It ships as one container, which keeps the whole thing cheap to run and trivial to reason about.
Tavo and Tonecraft both put a language model in their critical path, which means I have spent my time on grounding, structured output, failover and testing against the real model rather than on prompt demos.
Tavo's assistant answers over live venue data. Getting it to stop naming places that do not exist took re-injecting the candidate set on every turn, replacing free-text place names with a structured id token, dropping temperature, and matching on the last mention rather than the first. When it still drifts, it falls back to the real feed instead of guessing.
One shared streaming layer fronts three inference providers and moves to the next on any non-200 or network error, so a single vendor outage does not take a feature down. Streaming is server-sent events, so the interface fills in as tokens arrive.
Tonecraft simulates a six-turn conversation where each turn depends on the last, offers three plausible reactions at every turn, then forecasts the outcome with a stated confidence. The hard part is coherence across turns and degrading safely when the model returns something unexpected.
Consumer apps cannot absorb frontier-model pricing per interaction. These run on small fast models with capped output, chosen per task, because the product has to stay solvent at the price the user actually pays.
Tonecraft is walked end to end against the production model every few hours: a cold arrival, setup, six turns, the outcome and the closing message. A mocked model passes where the real one drifts, so the walk uses the real one.
Most of what these products do is ordinary engineering. A model is used where it earns its latency and its cost, and nowhere else. StripeRescue's code changes come from fixed detectors and templates, not a model, and a person reviews every one.
Next.js or React, with auth, payments and a real database. Deployed, monitored, and documented down to the deploy path.
An existing web app onto iOS and Android through Capacitor, then through both store reviews. Tavo and Tonecraft both went this way, and both are live on both stores.
Stripe, OAuth, LLM APIs, maps, third-party data sources. The kind that has to keep working after everyone stops looking at it.
Builds that fail, deploys nobody trusts, a release process that needs one person present. I have untangled all three.
A decade as a sales engineer, running technical evaluations with customers and exec teams as well as with the codebase.
Every product on this page was built by one person: schema, API, front end, native shell, payments, store submission.
I spent a decade as a sales engineer and solutions architect at Port, Lacework, Spot.io, SignalFx and Couchbase, running technical evaluations for Fortune 500 buyers and building the demos and proofs of concept that decided them. Before that I wrote C++ and JavaScript on the mortgage-backed securities analytics team at Bloomberg.
I have sat on the other side of enough technical evaluations to know which corners get cut and which ones get found, and I write the code myself. Degrees from the University of Pennsylvania and the University of Delaware.