Back to News & Insights
Artificial Intelligence September 7, 2026 · 12 min read

Happen to Have? Answer One Before You Ask One

A voice advice exchange where Gemini reviews every contribution—and where the architectural rule backed by my strongest measurement turned out to be measuring the wrong thing.

Happen to Have? Answer One Before You Ask One

TL;DR Happen to Have? is for somebody who needs one answer and still has something useful to give: answer a stranger before asking your own question. An answer fans out to four Gemini calls—processing, crisis, illegal or dangerous content, relevance. A question gets three, since relevance has nothing to compare it with. Only processed text is ever published. The original recording exists for the length of one request and is never stored. Halfway through, the measurement behind my strictest architectural rule turned out to be confounded, and the rule came out of the constitution. Live at happentohave.anchildress1.dev, with five feature specs, the measured guardrail results, and the full implementation in the repo. Target category: Best Use of Google AI.

Going to church every Sunday was a requirement while I was growing up, and the ladies there had a group called the Busy Bees who would do literally anything that needed doing for somebody in need. So when this challenge asked me to "build something in the spirit of generosity," that's what I thought about first.

The problem was translating that to a scale that actually works. The Busy Bees worked because everybody already knew everybody, and that is not true of an app accessible from anywhere.

I spent the next hour trying to brand the thing, running back through everything I could remember about how generosity has actually shown up in my life, and it eventually hit me that there's no word for any of it—because it's so normal where I live. A complete stranger is stranded with a flat tire, and you spend an hour on the shoulder helping, just because you happen to have a jack in the truck bed. It's not out of the ordinary enough to need a name.

So I built Happen to Have? on the idea that if you happen to have a solution, you share it. A donation tracker would have been simpler. It also would have left giving optional.

You arrive, you're handed somebody's question, and you can skip until one you can actually answer comes up. Skipping is tab-local: it writes nothing, requests nothing, and never counts against anybody.

Record up to sixty seconds and the answer goes to review. There's no minimum, so a fifteen-second answer that engages the question can pass. If it passes, the answer publishes and you earn exactly one question of your own.

Spending that ask works in reverse—record the question, review it, then publish the question and consume the ask in one database statement. If review fails the ask stays put; if publication fails the statement rolls back. Nobody gets charged for a question that doesn't exist.

You hold one ask at a time. Answering again while you're already holding one still publishes the answer and still reaches the stranger, but it doesn't mint a second ask.

New selections stop routing a question once the database counts three published answers. Without a ceiling the most compelling question absorbs every answer anybody records and the quiet ones never get touched. A tab that loaded a question before its third answer can still finish submitting, and I took that bounded window over building a reservation system for a weekend app.

Yours shows what came of everything that published: Your answers, beside the questions they addressed. Your questions, with however many responses came back. A Listen action on every response to your questions. No votes, ranking, best answer, reply box, profile, or follower count.

Identity is an anonymous browser session, not an account. The cookie lasts thirty days, and if you clear it there's no recovery flow — anonymity and account restoration don't reconcile, so I didn't pretend otherwise.

| Step | What happens | Why it exists | |---|---|---| | Record | The browser captures up to sixty seconds | Talking is friendlier than filling out a form | | Review | Four Gemini calls receive the original audio in parallel | One processes the text; three judge independently | | Process | Gemini transcribes, translates, and removes identifying detail | Only processed English text enters the pool | | Decide | Crisis, illegal or dangerous content, relevance, and content quality form one unanimous gate | A missing result is never treated as permission | | Publish | The answer row and the ask grant happen in one SQL statement | Either both happened or neither did |

People asking a stranger for help hand over identifying detail without meaning to—the town, the employer, the name of whoever they're fighting with, sometimes their own name in the first three words. These two are strangers permanently: there's nobody to report, block, or unfriend afterward, so the only version I'd ship is one where neither side can find the other. Scrubbing happens before publication, so the detail never enters the pool rather than being deleted from it later.

The recording never reaches object storage. The browser sends its Blob to the route, the route holds those bytes only long enough to call Gemini, and every exit path releases them. There is no stored original and no playback URL containing a stranger's real voice.

A withheld result names its reason in fixed, human-written copy and offers a fresh recording. Model-generated explanations never reach a participant.

One verdict doesn't behave like the others. If the crisis check fires, nothing publishes and nothing is earned, and the page says it sounds like you might be going through something serious right now—this isn't the right place for that, but these people are, any hour, followed by the 988 Suicide & Crisis Lifeline, the Crisis Text Line, and an international directory. That text is fixed, human-written, and reachable without having earned anything. The app doesn't counsel anybody. It knows one thing about that moment, which is that this isn't the right room.

What I did not build: accounts, identity recovery, a social graph, a feed, reply threads, ratings, a minimum answer length, or a submit-then-poll job queue.

Want to discuss this further?

Book a free strategy call with our team to see how these insights apply to your specific business goals.

Book a consultation