Our Platform
Our current product offerings aren't separate codebases. They're configurations of the same voice-agent runtime. WellSaid's platform defines what the agent can do; member context determines what it does next — so launching a new experience is configuration, not engineering.
Configure
Platform blueprintAgents, workflows, modules, scripts, templates, and tool contracts.
Compose
Agentic workerSpeech, reasoning, approved tools, and routing composed per member.
Connect
Real-time responsesStreaming voice, bi-directional views, commands, and events.
Present
EdgeNative interactive UI, speech synthesis, and avatar animation.
Why the platform compounds
Each one was a technical decision. Each one changes how the company scales — what it costs to add an experience, what it costs to hold a conversation, and how hard we are to replace.
01
Leverage
Orchestration, instructions, tool contracts, and UI views are authored as content rather than written in code. New modules, experiences, and personas ship as configuration, so engineering cost does not scale with how many experiences we run.
02
Margin
No dynamically generated avatar video crosses the media stream. The backend sends compact speech markup and structured UI data; the edge renders the audio and the animation.
03
Moat
Every session leaves durable context — answers, goals, preferences, progress, results. The experience does not reset, so the longer a member stays, the harder the platform is to swap out.
Inside a session
The edge and the agent worker are peers in the same real-time room. Media travels over WebRTC; application commands and rendered view payloads travel over RPC. There is no direct edge-to-worker HTTP call.
1
Identity provider login and a signed first-party API session. A token service mints a room-scoped access token.
4
Microphone over WebRTC. Buttons, forms, and games over command RPC. Typed responses, push-to-talk, chat, pause, and resume.
9
The template renderer selects the UI. Neural speech synthesis returns audio, visemes, word timing, and bookmarks for avatar lip-sync.
2
Signaling plus WebRTC media, with participant identity bound to a verified member email.
5
Up: encoded audio and UI commands. Down: view and client-event RPC. Every event resets the idle timeout.
8
A view RPC carries template, speech, and content. Speech mirrors into transcript history; server-side audio output stays off.
3
A containerized worker joins the session. The router loads member and experience context, then selects the dialog, dynamic, demo, scripted, or free-form mode.
6
Streaming speech recognition, voice activity detection with tuned endpointing, a configurable language model, and preemptive generation.
7
CMS-driven prompts and workflows, with tools for navigation, goals, meals, assessments, exercise, shopping, and games. State survives agent transfers.
Session end
The session layer records audio, transcript, traces, and logs. The worker uploads audio, reports, and vocal biomarker windows to object storage.
Functional technology stack
Responsibilities are split so each layer can change independently — the edge owns presentation, the real-time core owns the boundary, the worker owns reasoning, and the platform owns durable state.
Closest to the member
Owns presentation
Owns the boundary
Owns reasoning
Owns durable state
System of record
Where speech is owned
Text-to-speech is an edge responsibility. The backend disables real-time room audio output and sends speech text through the view RPC, so the edge can synchronize speech with the animated avatar.
Functional architecture only. Vendor and product names are intentionally omitted; specific providers remain implementation choices.
Already in production
The breadth below is running today across both experiences — which is why launching a new one is a configuration exercise rather than a build.
Low-latency recognition, endpointing, preemptive generation, push-to-talk, typed input, pause and resume, and mobile audio unlock.
Animation synchronized to speech visemes, word boundaries, markup bookmarks, speech rate, and optional sentiment.
The router chooses demo, scripted, dialog, dynamic, workflow, subscription-expired, or evergreen experiences from member and CMS state.
Check-ins, assessments, nutrition and activity goals, exercises, meals, meal plans, cookbook, shopping lists, and brain games.
The backend sends named templates, images, video, forms, timers, spotlight content, and navigation state through the view RPC.
Profiles, completed assessments, session time, answers, preferences, goals, game scores, and progress through each experience.
Timed or hold-to-talk windows switch turn detection to manual, capture speech segments, and annotate the full-session recording.
RPC retry, shared HTTP session, fallback routing, holding messages, token refresh, room timeouts, and graceful reporting failures.
The session layer records audio, transcript, traces, and logs. Object storage archives artifacts; centralized logs and analytics cover usage.
Why this wins
01
New experiences are configuration. Engineering cost does not scale with how many we run.
02
Speech and animation render at the edge. Conversation cost does not scale with generated video.
03
Durable member context compounds. The longer someone stays, the harder we are to replace.
The platform is the product. The experiences are configuration.