iPhone, Apple Watch, and private cloud
Somnora
A companion for nights and the days they shape. Nora brings dreams, mood, sleep, and reflection into one private conversation, then chooses restraint when there is not enough evidence to be useful.
- Client
- Native SwiftUI for iPhone and Apple Watch
- Context
- Dreams, mood, journals, and read-only HealthKit signals
- Cloud
- Private Cloud Run gateway with provider failover
- Memory
- Salience, synthesis, retrieval, and duplicate control
The project
What it does
Somnora is built around Nora, a conversational companion that can reflect on a dream, help unpack a mood, notice longer-term patterns, or give a half-formed idea somewhere to go. Health signals are supporting context rather than a diagnosis, and the product is designed to stay quiet when the evidence does not justify an interruption.
The app spans an iPhone client, an Apple Watch capture path, local context and permission services, and a private gateway for model calls. Creative flows keep the conversation primary. Any reminder or follow-on action is offered only after Nora responds, through a separate consent step.
Built around
Product principles
A companion, not a dashboard
Dreams, mood, and sleep are interpreted in a human conversation instead of reduced to scores and streaks.
Permissioned context
HealthKit access is read-only, and each source has an explicit reason to exist in the response.
Memory with editorial judgment
Formation, synthesis, decay, reinforcement, and retrieval decide what deserves to persist.
Consent before action
Nora answers first. Reminders and other actions arrive afterward as optional, inspectable invitations.
System architecture
How the system moves
Signals stay separated from decisions until the context layer can establish provenance, relevance, and permission. The private gateway isolates model providers from the app, while Nora's response and any optional action remain two distinct product moments.
Context to response
-
01 · Signals
Dreams, mood, sleep, voice
User entries, read-only HealthKit data, and Watch recordings begin as separate sources.
-
02 · Permissions
Source and consent boundary
Managers expose only authorized context and preserve where each observation came from.
-
03 · Context
Timeline and retrieval
Relevant observations and high-value memories are selected under a bounded context budget.
-
04 · Gateway
Private Cloud Run proxy
The client reaches hosted inference through a controlled gateway with caching and failover.
-
05 · Nora
Conversation and creative flows
Nora responds in context, including Dream, Eureka, Insights, and Mindful experiences.
-
06 · Outcome
Response, then invitation
The answer lands first. Any reminder or action is offered separately and requires consent.
Boundary to keep: Health signals inform reflection but do not become diagnoses, and an inferred need never becomes an automatic action.
Keep exploring