A voice AI built to listen, not to fix
We built Life Conversation, a spoken, reflective conversation in the browser. You talk something through out loud, and it listens, asks about your own words, stays quiet while you think, and leaves the thinking to you.
The Client
Life Conversation is a UK product for adults who want to talk something through out loud: a decision about whether to stay or go, a change of career, a life that has changed shape. It is software, not a person, and it is not therapy. Its behavior comes from a written method set out by its founder. Most conversational AI is built to answer, agree and fix. This one is built to hold back.
The Challenge
A voice product that listens is harder to build than one that answers. Every default in a language model pulls toward advice, agreement and filling the silence. The founder's method asked for the opposite: short responses, at most one question at a time anchored in the speaker's own words, no advice unless explicitly asked for, and silence used on purpose rather than as a timeout.
On top of that, it had to feel like a conversation. Replies needed to start within a second of the system deciding to speak, the speaker had to be able to interrupt at any moment, and a dropped connection could not end the conversation. And because people bring personal things to it, privacy had to be part of the architecture: nothing kept by default, opt-in memory the participant controls, and no way for the people running the service to read a conversation.
Our Role
We took the founder's brief and written method and turned them into a working product: the participant voice application, the administration application, the evaluation tooling and the infrastructure. A private, invitation-only pilot was running a week after the agreement was signed. We refined the system through rounds of participant feedback, then built the public website, self-serve sign-up and free plan, and launched it at life-conversation.com.
What We Built
A real-time voice conversation platform
Real-Time Voice Engine
Audio streams from the browser over a WebSocket to realtime speech recognition, and the reply is synthesized and streamed back as it is written. Speaking over the system stops it mid-sentence and records what was actually heard. A dropped connection is survived for 90 seconds, and the conversation resumes where it was.
Deliberate Silence
A silence controller decides when the system may speak, separately from how fast it can. It waits longer when the speaker sounds mid-thought, grows more patient after cutting in too early, and checks back in gently when a quiet stretch runs long. Choosing to say nothing is a real option the model can take on any turn.
The Method as Configuration
The founder's written method runs as versioned, schema-validated configuration plus explicit conversation state, not as one long prompt. A state machine tracks the phase of the conversation and a mode policy limits what the model may do at each moment. Published versions are immutable, so every conversation can be traced to the exact configuration it ran on.
Latency and Model Routing
Claude is the primary language model, with Gemini on Vertex AI as a hedge that starts only when the primary is slow to produce its first token. The model call begins while the speaker's words are still settling, and the voice connection opens in parallel, so the reply can start within a second of the decision to speak. The model can be switched from the admin app without a deployment.
Opt-In Memory and Privacy
By default nothing said is kept after a conversation, and the app never writes audio to disk. Memory is off until the participant turns it on, and then it is a short plain-language record they can read, edit item by item or delete. What is kept is encrypted with AES-256-GCM.
Admin and Insights
A separate administration application for participants, feedback, engagement statistics, method versions, running costs per conversation and team roles. It is built only on content-free statistics and the feedback people choose to send, and has no route to a conversation or a memory record. Every admin action is written to an audit log.
Conversation Evaluation
Two test suites run against the live model. One scores single scripted moments against the method's hard rules, such as no unsolicited advice and no praise. The other runs whole simulated conversations with personas through the real pipeline, because a system can pass every single turn and still fail over twenty.
Website and Self-Serve Sign-Up
The public site, with a live, animated preview of the conversation screen, a blog, legal pages and technical SEO. Sign-up is self-serve with passwordless email links and a free plan with an hour of conversation a month. Pilot participants were carried over to the new address still signed in.
The Architecture
One Node process serves both applications: Next.js for the pages and APIs, and a WebSocket endpoint where each live conversation runs as its own orchestrated session. When the speaker stops, the silence controller reaches a decision point. Only then does the pipeline build the prompt from the published configuration and the conversation state, and the model answers with a mode (including silence) followed by the words to speak.
Because a live conversation lives in the memory of the process running it, there is exactly one instance by design. It runs with PostgreSQL and Caddy in Docker on Google Cloud in the EU. A release is tagged and picked up automatically, but only once no conversation is in progress, and a shutdown finishes each live conversation's memory update before the process exits.
Impact
Life Conversation is live and free to try in any modern browser, with nothing to install.
Visit life-conversation.comLet's Build Together
Your vision,
our expertise.
From AI integration to full-stack development, we turn ambitious ideas into products that perform.