-
-
Your Storybook Period Tracker
-
See your Whole Cycle at a Glance
-
Your Partner Gets Hints. Not Your Data.
-
Spot Patterns in Plan Words
-
Log Your Day By Just Talking
-
Here for Your Next Chapter
-
Know What Helps, Phase by Phase
-
Make Every Day Your Own Page
-
Calendar View(Month view)
-
Moni's Chat View
-
Today's Update Popup
-
Homepage
-
Insights
Inspiration
Moni started with my partner.
More than once, I only understood that a week had been hard after it was over, and I wished I'd known sooner how to help.
I wanted to show up better on those days, but none of the options were good. Asking every morning felt like an interrogation. A shared period calendar would show me far more than I needed to know and still not tell me what would actually help. And the trackers themselves were charts of red dots that nobody looks forward to opening.
So I built Moni around two ideas: the person tracking gets something that feels like a journal instead of a medical chart, and the people close to them get just enough to be kind, and nothing more.
What it does
Moni is a period tracker that reads like a storybook.
- Every day is a painted page. Open any day to see its cycle phase with watercolor art, what's happening in your body, and what to eat, do, and skip.
- Decorate the day. Draw on it, write notes by hand, or add from 170 3D stickers, including a shelf made for cycle days.
- Ask Moni. An AI companion who knows what day of your cycle it is and what's coming next, and answers like a friend rather than a textbook.
- Insights in plain words. Cycle length, irregularity, and PCOS-related patterns, explained simply, always marked as not medical advice.
- Care Circle, the reason Moni exists. Invite a partner, parent, sibling, or friend with a one-time code. They get their own view: a soft "inner weather" for the day, concrete ways to help, and a push notification when something changes. You choose between Gentle (care hints only) and Phase vibe (adds a sense of the week's energy). They never see dates, cycle days, or intimate symptoms, and removing someone ends their access immediately.
- Pregnancy mode. When the story changes, Moni switches to week-by-week tracking.
How I built it
- One codebase, three platforms: Next.js 16 and React 19, exported as a static site and wrapped with Capacitor 8 for iPhone and Android, plus a web app.
- Backend: Node.js and Express with Prisma on Neon Postgres.
- AI: Claude through OpenRouter powers Moni's chat, with a fallback model.
- Notifications: APNs, FCM, and Web Push, driven by a server-side scheduler.
- Payments: RevenueCat for Moni Pro across iOS, Android, and web, plus AdMob rewarded ads verified on the server.
- Sign-in: Apple and Google.
- Design: a flat, ruled-paper planner look with one typeface (Inter) and original watercolor illustrations.
Partner privacy is enforced in code, not just promised in copy. Everything that reaches a supporter has to pass through a single PartnerSafeLog type that only holds mood and non-intimate symptoms. A raw day log can't compile into a partner's feed or lock-screen notification.
Challenges I ran into
- Writing hints that help without revealing anything. "Keep plans light tonight" is useful; "day 2 of her period" is not okay. Every hint is written per phase and per relationship, because what reads as sweet from a spouse sounds strange from a parent.
- Making revocation real. Removing someone from the circle has to revoke their link and expire any open invite codes in the same step, otherwise "remove" is just a UI change.
- Making a web app feel native. Safe areas, push on three platforms, and purchases that stay in sync between iOS, Android, and the browser.
- Honest feedback. An early tester said the drawing tools felt "like a note-taking app." I rebuilt the sticker set around the cycle instead of generic doodles.
Accomplishments that I'm proud of
- Moni isn't a demo. It's a working product: an iPhone app, a web app, a landing page, and a privacy policy written from the actual server code.
- The partner privacy boundary is checked by the compiler, not left to good intentions.
What I learned
The hardest decisions on the partner feature were about what to leave out. In a health app, what you choose not to share is what earns trust, and tone matters as much as features.
What's next
- Stickers suggested from what you logged that day.
- Letting Moni decorate pages with the cycle sticker shelf.
- Testing Care Circle with more couples and tuning the hints with them.
Built With
- admob
- android
- apple-push-notification-service
- capacitor
- claude
- express.js
- firebase-cloud-messaging
- google-sign-in
- ios
- javascript
- motion
- neon
- next.js
- node.js
- openrouter
- postgresql
- prisma
- react
- revenuecat
- sign-in-with-apple
- tailwindcss
- typescript
- web-push
- zod
Log in or sign up for Devpost to join the conversation.