PlaygroundiOS · AI · 0→1

Building Ruxpin.

A voice-first reading companion I designed and built — from the thought I kept losing, to a working prototype in this playground, to an iPhone app on the App Store. Six chapters, about four minutes.

Role — solo
Design, engineering, product
Timeline
Jun → Aug 2026
Stack
ExpoNext.jsSupabaseAI pipeline
On the App Store ↗
The itchWhere it starts

The thought you lose.

I read a lot, and I kept losing the best part — not the author’s sentences, mine. The reaction halfway down a page. The connection to something I’d read years earlier. The question I couldn’t answer yet. By the time I’d found a pen, or unlocked my phone and picked a notebook to put it in, it was gone. Highlighting saves the writer’s words; it doesn’t save yours. I wanted to say a thought out loud the second I had it, and have it land somewhere it would still make sense to me a year later.

A working sliceJun 2026

The smallest thing that could work.

Rather than argue about it, I built the narrowest version that could test the idea: record a thought, get it transcribed, and let an AI reflect it back instead of summarizing it at you. It started here in this playground, next to the half-finished experiments, and ran in the browser for a couple of months — the original build, nothing cleaned up for anyone. That slice answered the only question that mattered early: whether speaking a half-formed thought felt natural enough to do again tomorrow.

Speak itTranscribedMuse reflects
Designing the whole productJun 2026

Drawing all of it.

A working slice isn’t a product. Before I could tell whether the idea held together, I had to draw the whole thing — about fifteen screens: capture, a library of everything you’ve read, a portrait of you as a reader assembled only from your own entries, and Rux, the part that mirrors a thought back and asks one good question. Most of it didn’t exist yet. Drawing it is how I found out which pieces were load-bearing and which were me being clever.

RuxpinMVP · Solo Loop
New tab

Drag to pan the board · use a screen’s to expand it, or open it full screen.

Building the real thingJul–Aug 2026

The part you can’t see.

The app is Expo on iPhone. Behind it, the server routes are thin wrappers around an AI pipeline that lives in its own framework-free package — so swapping models never requires an App Store release. The rule that shaped all of it: where a promise matters, it’s enforced in code, never in a prompt. Everything the AI returns is validated against a schema — the model fills a typed shape or the call fails; I don’t coax JSON out of prompts and hope. Any change to a prompt or model has to pass an eval gate of golden fixtures before it ships. Every database table enforces row-level security, so a reader can only ever reach their own record. And audio is transient by design: transcribed, then deleted, in code that runs even when the request fails. None of it shows up in a screenshot — which is why it gets a chapter.

Capture → land → analyze
01iPhone · Expo

Capture

A thought is spoken mid-page. A local queue holds it until it lands, so it survives the app being killed.

02Thin server route

Land

Transcribed, and the audio deleted straight after. The entry lands raw, before anything analyses it.

03Framework-free package

Analyze

Structured, filed to its source, indexed for recall — into a typed shape, or not at all.

Enforced in code, never in a prompt

Schema, not prompt
every model return is validated
Eval gate
golden fixtures pass before a prompt ships
Row-level security
every table — you reach only your own record
No audio kept
deleted after transcription, success or failure
Model swap, no release
the pipeline is its own package
The path one spoken thought takes, and the promises kept along it.
Shipping itAug 2026

Asking permission, properly.

I submitted 1.0 in mid-August and Apple rejected it. The reason was fair: thoughts were being sent to an AI provider, and the disclosure lived only in the privacy policy — App Review wants the app itself to say what it sends and to whom, and to ask permission first. So that’s what I built: a screen right after sign-in that names the provider, lists what each feature sends and what never leaves — never your name, email, or payment details — and asks for an explicit “Allow and continue” before anything is sent. Saying no still lets you in; capture just waits for your OK. And the promise is enforced where the data actually leaves: the server refuses AI processing for any account without recorded consent, so the screen can’t drift into being decorative. Resubmitted the next day. Approved, and live on the App Store, three days after the rejection.

The consent screen the app shows before it sends anything: under the heading “Ruxpin uses AI.”, a plain-language paragraph naming Google’s Gemini as the service that turns a spoken thought into text, a “What gets sent” list — recordings transcribed then deleted, the text of thoughts and entry metadata, entry data used for Rux, the Reader portrait and search — a line promising that a name, email, Apple ID, device and payment details never go, and two choices: “Allow and continue” or “Not now”.
The screen as it ships, between sign-in and everything else.
The product todayNow

Your reading, remembered.

Ruxpin is a real iPhone app now, on the App Store. Speak a thought mid-page and it keeps it — filed to the book, in your words — whether you’re holding paper, a Kindle, or an audiobook. The portrait it builds comes only from what you actually said. Audio is deleted as soon as it’s transcribed, and none of it trains a model. A free first month, then $5.99 a month, with Family Sharing for up to five more readers, each with their own private record.

The capture sheet partway through a recording — a live waveform, a timer counting down against the three-minute cap, and a single button to stop — which is the whole of speaking a thought without putting the book down.The Library, listing every source that has been spoken into with its entry count: unfiled thoughts wait in a dashed frame at the top, a star pins the reading in progress, and two pills filter and reorder the shelf.The Reader tab, where a portrait sentence assembled from the reader's own entries sits between a daily streak and the reading vitals — cadence, inquiry, reflection — each recomputed from what was actually captured rather than self-reported.
Where it goes next

See what it remembers.

If you read and keep losing the good part, try it. Ruxpin is on the App Store for iPhone — free to download, and your first month is on me.

More about the product itself — what it does, and who it’s for — at ruxpin.app ↗

Want new features before everyone else? Reach out — I let a few readers try early builds.

Or head back to the rest of the playground.