Inspiration
One of our members has an aunt that saw first hand how overwhelming the first 1000 days of a baby's life can be. Caring for a baby as a first-time parent can be difficult without the help from pediatricians and medical professionals, which not everyone has the financial aid for. There are countless apps for tracking feeds or sleep, but nothing that combines tracking, AI-powered guidance, medical awareness, and family collaboration into one calm, unified experience. In order to combat that and provide a support system that creates no financial burdens on the user, we wanted to build something that feels like a supportive companion, not just another tracker.
## What We Learned
- How to integrate the Gemini API to build a context-aware AI assistant that adapts its advice based on a baby's age, medical conditions, weight, and family
history - Real-world complexities of state-specific vaccine schedules and how medical conditions alter recommendations
- Building a real-time family sync system so parents and co-parents can share data across devices
- The importance of designing for stressed, sleep-deprived users — every tap matters
## How We Built It
- Frontend: React + Vite with a mobile-first design system (430px max-width, custom CSS with theme support and dark mode)
- AI Chatbot: Gemini 2.5 Flash API with a dynamic system prompt that injects the baby's full medical profile, growth measurements, recent logs, and family history
- Family Sync: A lightweight Express sync server that stores shared family data by invite code, with Vite proxying API requests so ngrok can tunnel
everything through a single port - State Vaccines: CDC-recommended schedule adjusted per state requirements and medical contraindications (e.g., live vaccines flagged for immunocompromised babies)
- Camera & Journal: Browser MediaDevices API for snapshots with a date-labeled album, and jsPDF for exporting journal entries as PDFs
## Challenges We Faced
- API key security: Our Gemini key got auto-revoked after being pushed to a public repo. We learned to use
.envfiles and.gitignorethe hard way. - Timezone bugs: Feed/sleep logs stored in UTC didn't match the local calendar dates users selected. We had to build a local date comparison layer.
- Cross-device sync without a database: With no cloud DB, we built a file-based sync server and routed it through Vite's proxy so ngrok could carry both
the app and API on one tunnel. - Onboarding complexity: Supporting both parent and co-parent flows with optional medical steps, state selection, and account creation required careful
step-numbering logic that adapts dynamically.
Built With
- auth0
- css3
- express.js
- gemini-api-(2.5-flash)
- javascript
- jspdf
- localstorage
- lucide-react-(icons)
- mediadevices-api-(browser-camera)
- ngrok
- node.js
- router
- sqlite-(better-sqlite3)
- vite
Log in or sign up for Devpost to join the conversation.