projects·project·active

Vera

Thesis

Voice-first daily planner for iOS. Plan your day in under 5 minutes, hands-free. Vera greets with a health briefing (recovery, sleep, HRV), asks smart follow-ups as you talk through your day, outputs a prioritized schedule, writes it to Google Calendar. Internal codename: PlanIt (bundle ID com.planit.app).

Status

active. Pinned. Created 2026-04-02, last push 2026-04-06. Swift / iOS.

Stack

  • Platform: iOS 17+, Xcode 15+, Swift, XcodeGen.
  • Speech I/O: on-device STT and TTS — no internet needed for either.
  • AI: Groq (primary, llama-3.3-70b) with OpenRouter fallback.
  • Health: Apple HealthKit (HRV, RHR, sleep) and Whoop (recovery, strain, HRV, sleep performance via Whoop V2 API OAuth 2.0).
  • Calendar: Google Calendar OAuth 2.0 — reads today's events for conflict detection, writes the finalized plan.
  • Siri: StartPlanningIntent shortcut — "Hey Siri, start planning."
  • Architecture: service classes per integration (AIService, WhoopService, GoogleCalendarService, HealthKitService, etc.), VoiceSessionManager as the core state machine. APIKeys.swift gitignored; each dev supplies their own.

Key decisions

  • Multi-provider AI with fallback: Groq primary for speed/cost, OpenRouter fallback when rate-limited.
  • On-device STT/TTS: latency-critical voice UX can't eat a network round-trip per utterance. Same principle as wispr-flow.
  • Optional integrations: Whoop and Google Calendar are both optional — app still works without them but loses health context and auto-write. Good onboarding: don't block first-use on OAuth.
  • Bundled state machine (VoiceSessionManager): conversational flow is inherently stateful; centralizing state keeps it debuggable.

Learnings

  • For voice products, the first 500ms from tap is the entire UX. On-device STT + a snappy Groq call gets you under that bar.
  • Optional OAuth integrations with graceful fallback are the right pattern for apps that benefit from health/calendar data but shouldn't require it to demo.

Outcomes

  • Product exists, pinned on profile, actively developed. No public metrics yet.

Open questions

  • What's the "smart follow-up" logic? Prompt-engineered or a more structured planning model?
  • How does Vera reconcile conflicts when Whoop says "recovery is 40, go easy" but the calendar already has a full day?
  • Distribution: TestFlight, App Store, or private?

Links