Inspiration
Period apps usually assume you can fill checkboxes when you feel worst — in pain, bleeding, exhausted, foggy. Note-taking apps let you write freely, but then nothing becomes structured history you can learn from.
I wanted the gap in between: freeform input → structured, personal history. The interface should stay as simple as jotting a line; intelligence should show up as a quieter journal and honest patterns — not a quiz, not a clinical dashboard, not fertility-coded chrome. The name Olla is Finnish for “to be”: the app should feel empty until I (the user) give it something worth remembering.
What it does
Olla is a private period and body tracker you talk or type to.
Write a note in plain language; Olla extracts “things” (symptoms, flow, meds) and keeps your original words Home is notes-first: journal lines, severity when it matters, an honest cycle glance (no invented numbers) Insights show what repeats across days and cycles — heatmaps, compare, cycle views from your data Ask Olla answers grounded questions from your logs, not the open internet Onboarding: short promise → setup → try logging → reminders → subscription Privacy-first: journal text stays on the iPhone; on-device intelligence when available
How I built it
I built a native SwiftUI + SwiftData iOS app with MVVM, locking product decisions in docs before coding.
Capture — voice/type → interpret (on-device language models when available, local fallback) → confirm/reveal → Entry + Thing occurrences Home — day journal, merge same-day lines, cycle glance honesty ladder Cycle — user-confirmed period starts only; cycle day from real events Explore / Insights — deterministic analytics + Ask Olla over personal data Monetization — StoreKit subscription entitlement; trial, then a hard gate Design system: warm neutrals, dusty rose accents, sans for the user / serif for Olla’s voice
Challenges I ran into
Resisting the urge to fake a 28-day cycle or fill empty charts with placeholders Turning messy free text into useful structure (severity, multi-symptom notes, period signals) without turning Home into a form Gating insights until there’s enough history so I don’t invent medical-sounding stories Shipping under a hard deadline: Ask Olla, notices, widgets, and polish all competed with the core magic moment (write → reveal → journal) Paid-only design: let someone feel logging once in onboarding, then require subscription without a crippled free mode
Accomplishments that I'm proud of
A Home that still feels like a note, not a medical chart An honesty ladder for cycle UI — show what we know, hide what we don’t Preserving original words forever alongside extracted structure Insights and Ask Olla that only speak from the user’s own logs Privacy as a product principle, not a footer: on-device-first interpretation, no ad-driven health graph
What I learned
Complexity belongs to the system, not the person logging at 3am “AI” shouldn’t be a mode users open — it should quietly structure what they already said, and stay explainable Irregular cycles and perimenopause break apps that assume a textbook cycle; confirmed events beat averages Strong product docs (vision, UX locks, cut order) matter as much as code when time is short Empty states and “not enough data yet” are features — they protect trust
What's next for Olla Period Tracker
Sharper multi-symptom extraction and matching Stronger Ask Olla grounding and Explain-everywhere polish Optional bring-your-own AI key (still no silent cloud of journal text by default) Deeper platform work: widgets, voice logging reliability, thoughtful Health integration where it helps — without becoming a fertility suite Localization beyond English and continued accessibility hardening (Dynamic Type, Reduce Motion, VoiceOver) Olla stays a period/body journal you can just talk to — private by default, structured underneath, useful only when your own data earns it.
Log in or sign up for Devpost to join the conversation.