Zorya
A privacy-first pregnancy tracker for iOS. Built and owned by me, solo: from the first research question to the App Store and everything after it.
- Project
- Own product, iOS, 2026
- Role
- Founder and product designer
- Team
- Solo. No design manager, researcher or engineer
- Platform
- iOS, React Native and Expo
- Status
- Live on the App Store
Held directly
- Research
- Product strategy
- Pricing
- UX and flows
- UI and design system
- Copy
- Device QA
- App Store and ASO
- Website
Directed
Engineering execution. Directed through an AI coding agent (Claude Code). I wrote the specs, made the product decisions and reviewed every change before release.
5.0
App Store rating, from 5 ratings
71
First-time downloads, no paid ads
53
Mothers surveyed before design started
2
Languages, English and Croatian
The apps holding the most sensitive data had the worst record.
I was pregnant with my second child and using pregnancy apps every day. They hold weight, symptoms, blood pressure and due dates. When I checked, the largest apps in the category all had public privacy cases.
Flo
Settled with the US Federal Trade Commission over sharing health data with third parties.
Glow
Settled with the California Attorney General over privacy and security failures.
Ovia
Reported for sharing aggregated pregnancy data with employers.
A survey of 53 mothers.
Run on Prolific and screened for mothers. It was affordable for a solo project and reached people outside my own network.
96%
had used an app with a documented privacy violation
70%
rated local-only storage as extremely important
Two product principles, used as criteria.
Local only
All data stays on the device. There is no server, account or sync, so there is nothing to breach or hand over.
Excludes: accounts, cloud sync, analytics SDKs, live content
Mirror, not doctor
The app shows what a person logged. It does not interpret, score, flag or predict.
Excludes: risk scores, diagnosis, predictive nudges, AI health advice
Features I left out
Calm daily use, with tools that appear when they're needed.
Kick count opens from week 27 and the labor tools from week 36, so the app never shows features before they make sense. The kick counter is a full-screen tap target, usable one-handed without looking closely.

Week counter with a short weekly note, trimester bar, kick count and quick log.

Current pregnancy with week, due date and log count. Earlier pregnancies are archived below.

Every entry in one list, filtered by type. No scores or trends are added on top.
Privacy and support in the interface
Local only badge
The same header on every tab, as a constant reminder of where the data is kept.
Support Zorya
Always visible, never a popup or a prompt.
Export and delete
In Settings, the user can export all data or delete it.
Review prompt
Shown only after three or more entries.
One theme file. No hardcoded values.
- Hanken Grotesk, one family
- Defined in Claude Design
- One primary action per screen
- Gradient only behind the header
A designer directing an AI coding agent, one brief at a time.
Frame
Check the idea against both principles.
Design
Started in Figma, finalised in Claude Design.
Brief
A written build brief with fixed constraints.
Build
The AI coding agent implements one brief at a time.
Review
Test on a device and compare with the design.
Ship
Production build and App Store submission.
Constraints in every brief
- Read the project rules file first
- Theme tokens only
- No new dependencies
- No network calls
- Small, targeted changes
I am a designer, not an engineer. I wrote the specs, made the product decisions and reviewed every change before release.
The architecture follows the first principle: the app and a SQLite database live on the phone, export and delete are controlled by the user, and there is no server, account or sync. The App Store privacy label reads Data Not Collected. Anything that collects data, like the user survey, is hosted outside the app, and content ships with each release instead of being fetched live.
The paywall asked for money before the features people came for.
Paywall
A 28-day trial, then a one-time lifetime pass. Conversion was low. The trial ended long before the kick counter (week 27) and contraction timer (week 36) became available.
Tip jar
A free app. Three optional tips of about €5, €15 and €25. Nothing is locked or unlocked, and every tier leads to the same thank-you screen.
How I decided
There was no funnel data to analyse. I separated two possible causes, the idea of paying and the timing of the request, and checked the timing against the pregnancy timeline. One constraint came out of it: no payment prompts near the end of pregnancy.
Growing without paid acquisition.
App Store
Subtitle "Private. Local. No cloud." Keywords and screenshot captions written for search.
Website
A bilingual English and Croatian site. Analytics run on the site, not in the app.
Articles
Ten articles a month across five topics. Drafted with AI, each one reviewed by me before publishing.
Channels
LinkedIn, Instagram, Reddit and Product Hunt, with founder disclosure.
App Store Connect, 26 June to 23 September 2026
6.64K
Impressions
301
Product page views
71
First-time downloads
1 in 4
About 1 in 4 product page visitors download the app
Daily impressions grew from under 50 in early July to around 100 or more most days in September, with no paid acquisition.
5 ratings, all five stars.
"No account, no ads, everything stays on my phone."
"Easy to navigate UI and extremely intuitive to use."
"Clean, calm design and simple to use. Really appreciate the local only approach."
"Since day one I have been a bit anxious. This app is really helping me."
Revisiting my own decisions.
The paywall and the AI companion were both my own ideas that I later changed or dropped. Checking decisions against the two principles, instead of reopening them each time, kept the product consistent. A rules file and project docs hold the constraints, so they don't depend on my memory. I moved fast on the core build and slower on pricing and postpartum, where mistakes affect trust.
Check pricing timing before launch
Mapping the payment request against the pregnancy timeline would have shown the problem earlier.
Set up feedback from day one
Without analytics, an external survey is the main source of input. It should have shipped with version one.
Next
- Android from the same codebase
- Home screen widgets using local data
- Period and postpartum apps as a suite
- On-device AI, only if data stays on the phone
Smarter Product Discovery →