MemoryBridge is a warm, supportive, fully interactive personal memory companion for people living with mild cognitive impairment, dementia, or early-stage Alzheimer's, and the families who care for them.
It is not a medical, diagnostic, monitoring, or clinical treatment tool. It feels human, warm, and familiar, never like a sterile AI dashboard.
The AI never invents a person's past.
It speaks strictly and solely from family-approved (verified) memories, offers familiar photos and calming music, and openly states when information is not in the family storybook:
"I don't have that memory in your family storybook yet. Perhaps someone in your family can tell us more."
┌──────────────────────────────┐
│ MemoryBridge Core DB │
│ (localStorage / Cloud) │
└──────────────┬───────────────┘
│
┌─────────────────────────┴─────────────────────────┐
▼ ▼
┌───────────────────────────────┐ ┌───────────────────────────────┐
│ Caregiver Web App │ │ Patient Tablet App │
│ Routes: /family/* │ │ Routes: /patient/* │
├───────────────────────────────┤ ├───────────────────────────────┤
│ • Memory Library & Albums │ │ • 3D Open-Spread Storybooks │
│ • 4-Step Story Wizard │ │ • Big Tactile Face Cards │
│ • Family Verification Queue │──── Sync ────►│ • Pressure-Free Puzzles │
│ • Memory Connection Graph │ (Verified │ • Vinyl Record Music Player │
│ • Timeline & Routine Manager │ Only) │ • Bedtime Sleepy Mira Diary │
│ • Relatives & Bio Directory │ │ • Conversational Companion │
└───────────────────────────────┘ └───────────────────────────────┘
flowchart TD
UserQuery["Patient Voice or Text Input"] --> EntityDetection["Topic & Entity Detection\n(People, Places, Years, Events)"]
EntityDetection --> FilterVerified["Query Database\nFilter: status == 'verified'"]
FilterVerified --> CheckFound{Verified Memory\nFound?}
CheckFound -- "No (Unknown)" --> Fallback["Exact Fallback:\n'I don't have that memory in your family storybook yet.\nPerhaps someone in your family can tell us more.'"]
CheckFound -- "Pending/Unconfirmed" --> PendingGuard["Safety Guard:\n'A family member suggested this,\nbut it has not been confirmed yet.'"]
CheckFound -- "Yes (Verified)" --> PromptBuilder["Build LLM Context\n• Family-Approved Facts Only\n• Zero Extrapolation / No Invented Details\n• Calm, Short Sentences, Reassuring Tone"]
PromptBuilder --> LLM["LLM (e.g. Gemini 1.5 Pro / Flash)"]
LLM --> AttachMedia["Attach Verified Photographs,\nConnected Song, & Follow-Up Prompts"]
AttachMedia --> CompanionOutput["Render Companion Speech Bubble\n+ Audio Narration (TTS) + Photo Card"]
The application is architected with swap-ready TypeScript interfaces under src/services/index.ts:
IMemoryService:
getVerifiedMemories(memories): Enforces that patient screens only query memories where status === 'verified'.status = 'verified'.IStoryService:
generateStoryDraft(input): Generates deterministic memory drafts from user-entered titles, dates, locations, and tagged people.IConversationService:
respond(userText, allMemories, allPeople, patientName): Keyword and entity matching engine with strict safety guardrails.ISpeechService:
window.speechSynthesis with warm rate (0.88x) and pitch controls.IVoiceService:
webkitSpeechRecognition with graceful fallback to keyboard input.#F36B32 (Warm Terracotta Orange)#B8431A (Passes WCAG AAA contrast against light cream)#FFFDF9 (Warm White), #F8F1E8 (Warm Cream), #FDEEE4 (Peach Wash), #EBF4F6 (Soft Sky)prefers-reduced-motion in CSS.# 1. Install dependencies
npm install
# 2. Run development server
npm run dev
# 3. Open in browser
http://127.0.0.1:5173/
/ for the Public Landing Page./patient for the Tablet Companion Experience./family for the Caregiver Management Hub.localStorage.