Memotive
A premium AI health coach that remembers everything about you — built from concept to TestFlight in 30 days using dual agentic frameworks.
The Product
Memotive is a conversational iOS app where an AI coach provides deeply personalized nutrition, fitness, and wellness guidance. Unlike generic fitness trackers that rely on forms and dashboards, Memotive’s coach remembers everything — every dietary restriction, every preference, every goal — through a semantic memory system powered by pgvector and VoyageAI embeddings.
Users interact through natural conversation. They can snap photos of meals for instant macro analysis, sync 16 Apple Health metrics for context-aware coaching, and journal their progress — all without filling out a single form. The coach streams responses word-by-word via SSE and intelligently routes between Claude Sonnet (complex reasoning) and Haiku (routine tasks) to keep per-user costs at $4–6/month.
The entire product — native iOS app, FastAPI backend, Supabase database with RLS policies, Railway deployment, StoreKit 2 subscriptions, and Sentry monitoring — was built from zero to TestFlight in 30 days by a solo developer using agentic coding workflows.
How It Was Built
Memotive used two distinct agentic frameworks, each optimized for its codebase. A central CLAUDE.md document coordinated both, with optional critic and auditor agents challenging assumptions and verifying acceptance criteria.
Paul Framework (iOS)
A Plan-Apply-Unify loop for structured SwiftUI development. 19 phases completed across 4 milestones (v1.0–v4.0), each with explicit acceptance criteria and autonomous execution.
Plan
Each phase begins with a PLAN.md containing YAML frontmatter (phase ID, plan number, dependencies, files to modify) and BDD-style acceptance criteria (AC-1 through AC-N). The plan is designed to be Claude-executable without clarifying questions.
Apply
Claude executes the plan autonomously — implementing features, running verification, and auto-fixing issues as they arise. No manual intervention between plan and completion.
Unify
A mandatory close-the-loop step that generates a SUMMARY.md documenting what actually happened: acceptance criteria results, decisions made (with rationale), deviations from plan, and readiness for the next phase.
GSD Framework (Backend)
A “Get Shit Done” framework for rapid Python iteration with a decision tree that routes tasks by complexity: direct edits for single-file bugs, quick mode for 2–3 file changes, and full research-plan-execute cycles for features touching 4+ files.
Cross-Repo Agent Teams
For cross-cutting features, agent teams were spun up with explicit roles: a “brain” agent building the backend (GSD), an “iOS” agent building the UI (Paul), an optional critic challenging assumptions during planning, and an optional auditor verifying acceptance criteria post-implementation.
What Was Built
Live Streaming Chat
SSE-streamed word-by-word responses with smart model routing — Claude Sonnet for complex coaching, Haiku for routine tasks. Includes offline fallback and demo mode.
Semantic Memory
6 memory categories (restrictions, preferences, patterns, context, motivation, milestones) with pgvector semantic search and keyword fallback. The coach never forgets.
Photo Meal Logging
iMessage-style photo staging with multi-image support (up to 10), per-item macro tracking, and meal deduplication. All integrated naturally into the chat flow.
Apple Health Integration
Reads 16 HealthKit metrics including sleep breakdown, HRV, VO2 max, blood oxygen, and menstrual tracking. Anomaly detection flags concerning changes automatically.
StoreKit 2 Subscriptions
Full in-app purchase flow with PaywallView, transaction restoration, and App Store Server Notifications v2 webhook for real-time subscription lifecycle management.
Cost-Optimized AI
Prompt caching delivers ~60% token savings. Real-time cost tracking with a $1.00/day per-user cap. Smart routing between models keeps the target at $4–6/month per active user.
Tech Stack
Frontend (iOS)
Backend
Living Documentation
Every session updated three synchronized documents that kept the project coherent across dozens of coding sessions with Claude:
SESSION_LOG.md
A 92KB living document tracking what’s working, what’s broken, and what changed in each session — with code blocks, status badges, and detailed rationale.
TASKS.md
A 72KB prioritized task queue with 50+ tasks, each containing problem statement, implementation approach, acceptance criteria, edge cases, and dependencies.
CONVENTIONS.md
Golden rules that must never be broken: “Coach is human” (never break character), “Memories are poker cards” (internal only), cost tracking is mandatory, tool changes span both repos.