About the project
Inspiration
The idea came from two things. The first was my own experience at a doctor's office, where I realized I had basic questions about my own cycle, things I felt I should have known years earlier. The second was a conversation with a girl from a different continent who described the exact same problem about her experience with the topic of female health.
Different countries, different cultures, same gap. Neither of us grew up knowing what was normal and what was worth worrying about. In a lot of places this topic just isn't discussed openly, and that lack of information turns into real discomfort and anxiety. menstedo is an attempt to fix that. It helps younger people notice their cycle, understand what is happening, and know when it is worth talking to someone. And all that in a friendly and supportive manner.
What I learned
- This problem is common. The more people I talked to, the clearer it was that "I was never taught what is normal" is the default experience rather than an exception.
- Combining tech with content is its own skill. menstedo is heavy on content, and the challenge was integrating a useful feature, a voice symptom capture tool, into all that educational material instead of bolting it on. Building the voice tool taught me how live speech transcription works and how to turn spoken input into reviewable symptom, flow, and mood suggestions.
- Where the line is. There is a clear difference between educational information and medical advice. I had to keep the app on the education side by explaining what is happening and when to seek help, without diagnosing or giving medical recommendations.
How I built it
I treated it as a product, not just code.
- Structured and ideated the problem and who it is for.
- Scoped the feature set. This included personalized onboarding, a daily dashboard with a cycle character, full daily logging, voice capture, a calendar of logged and estimated period days, and a Learn section covering phases, symptom explainers, myth busting, FAQs, and guidance on seeking help.
- Created the design outlines and gathered visual inspiration for a warm look that does not feel clinical.
- Prompted Sol to help turn the designs and flows into a working app.
The tech stack is Expo, React Native, and TypeScript, with Expo Router for navigation, Expo Speech Recognition for the voice tool, and AsyncStorage for storage that keeps cycle data on the device.
Challenges
- Privacy against convenience. This is sensitive data, so I chose to keep it on the device. That protects privacy but rules out easy cloud features.
- Voice on real devices. Speech recognition does not work in Expo Go and behaves differently across native and web, so making press and hold capture reliable, and degrade gracefully where it is not supported, took iteration.
- Staying educational, not medical. Writing content that is reassuring and informative without tipping into diagnosis was a constant balancing act.
- Scope. There was more I wanted to build than time allowed, so I had to cut the feature set down to what best answered the core "is this normal?" question.
Accomplishments that we're proud of
- Built a working voice symptom capture tool that takes spoken input and turns it into reviewable symptom, flow, and mood suggestions.
- Combined a lot of educational content with real functionality in a way that stays informative without crossing into medical advice.
- Designed a warm, approachable interface for a topic that usually feels clinical or uncomfortable to talk about.
- Kept all cycle data on the device, so the app is useful without asking people to hand over sensitive information.
- Shipped a full experience, from onboarding to daily logging to a calendar and a Learn section, within the time we had.
What's next for Menstedo
- Broaden the educational content and have it reviewed by health professionals so the information is accurate and trustworthy.
- Improve the voice tool with better accuracy and support for more devices and languages.
- Add gentle, optional insights that help people spot patterns in their own cycle over time.
- Test the app with the younger audience it is built for and refine it based on what they actually find helpful.
- Explore accessible ways to share information with a trusted adult or professional when someone wants support, while keeping privacy the default.
Built With
- asyncstorage
- expo-haptics
- expo-speech-recognition
- expo.io
- ios
- javascript
- mobile
- node.js
- react-native
- react-native-calendars
- sfspeechrecognizer
- sol
- typescript
Log in or sign up for Devpost to join the conversation.