The realtime voice engine behind every call
A Korean-first pipeline that listens, understands, and responds in real time — tuned end to end for care conversations.
The voice engine, console, apps, and backend share one platform — Convex, Pipecat, Clerk, and vendor speech models, wired together. One team owns the voice engine, the console, and the apps around it, in a single monorepo.
The stack
What is live and what is gated, stated plainly.
A Korean-first pipeline that listens, understands, and responds in real time — tuned end to end for care conversations.
Turn detection, barge-in, latency handling, and observation points are ours in code. We rent the models; we build the conversation.
Domain modules spanning care and consumer verticals, so schedules, records, and notifications move through one data flow.
Web and native mobile apps connect to the same stack, and the operator console handles the work after the call.
One stack
The voice engine, console, apps, and backend share one platform — Convex, Pipecat, Clerk, and vendor speech models, wired together.

30+
custom voice-pipeline processors
100+
feature flags
450+
operator-console components
34
care and consumer backend domain modules
Every figure was counted in the repository — audit, August 2026.
A Korean-first pipeline that listens, understands, and responds in real time — tuned end to end for care conversations.
Calls, transcripts, status, and follow-up actions in one screen. The console is where the work after a call actually happens.
Realtime data and auth behind every surface, across two isolated production backends.
Browser and mobile connect to the same stack. A call starts with no install, or from the app.
Surfaces
What the operator sees, what the family sees, and what the data underneath looks like — the same call from three angles.
Each card's three tabs show the same thing from a different angle, so you can see at once where a single call lands and in what shape.
Calls, transcripts, status, and follow-up actions in one screen. The console is where the work after a call actually happens.
Call list
Production actions run only after a person confirms them.
WelVoice ships as a Next.js web app and a native iOS and Android app. The browser connects with no install, and both paths reach the same voice engine.
App sessions
Browser and mobile connect to the same stack.
Domain modules spanning care and consumer verticals carry schedules, records, and notifications through one data flow. Care and manager apps have complete UI with backend integration in progress.
Records and schedules
Care and manager apps have complete UI with backend integration in progress.
A Korean-first pipeline that listens, understands, and responds in real time, with the orchestration and reliability layer we built sitting on top of it. We orchestrate vendor models; everything around them is our code.
Call session pipeline
We don't train our own speech or language models — we orchestrate vendor models and build the Korean tuning, orchestration, and reliability layer around them.
We also state which parts are live and which are not open yet. The telephony architecture is built but key-gated, and the care and manager apps have complete UI with backend integration in progress.
One repo, one human gate
Engine, console, and consumer apps are built and monitored by the same team, on one monorepo.
Fail-closed deploy guard
A human is the only gate to production
Call flow
Whether it starts in a family's app or on a care team's console, the call passes through the same engine and lands in the same backend. Pick a path below to see what each leg does.
A family starts a call from the browser or the mobile app, the voice engine handles the conversation, and transcript and record hand off to the care backend.
// A call session started from the browserconst session = await voice.startSession({ transport: "webrtc", locale: "ko", pipeline: "korean_realtime",});Calls, transcripts, status, and follow-up gather in one place. The console is where the work after a call actually happens, and more than 450 components make up that screen.
repository audit, August 2026
Calls
Needs reviewCalls this week
Weekly count against last week
Updating during the call
Needs review
Confirm follow-up actions
They run only after a person confirms
Safety
Every backend function authenticates in its own handler, enforced by an abuse suite in CI and at deploy, and a guard wrapper refuses a deploy that would drop a live function.
Fail-closed deploys
A guard wrapper refuses a deploy that would drop a live function; a human is the only gate to production.
Auth enforced in every handler
Verified by an abuse suite in CI and at deploy
Backend domains
Schedules, records, notifications, flags, transports, auth, and reports are separate domain modules that make up one data flow. 34 modules make up that flow — counted in the August 2026 repository audit.
Weekly, recurring, or one-off — call schedules are managed in one place.
Learn moreTranscript and recording remain on the record after the call, for later review.
Learn moreRules decide which notification goes to whom, based on how the call went.
Learn moreMore than 100 flags decide, in stages, what opens and when.
Learn moreBrowser and mobile are live; telephony is built and key-gated.
Learn moreEvery backend function authenticates in its own handler, verified in CI and at deploy.
Learn moreCalls and follow-up aggregated for operations and read from the console.
Learn moreA closer look
What each layer owns, what is open, and what is still gated — set out in one place.
Status differs per surface. This card sets out what runs in production today and what is still gated, without rounding either up.
Stack surfaces
Voice engine
Operator console
Web and mobile apps
Care and manager apps
34/34
Backend domain modules
Care and consumer backend
Counted in the repository
repository audit, August 2026
We'll start from what runs today and what is not open yet, and go from there.
See how the pipeline tuned for Korean conversation actually runs.