Inspiration
Pregnancy is one of the most information-dense, emotional periods in a person's life a nine-month stream of appointments, scans, blood tests, symptoms and antenatal classes. Today that information lives everywhere and nowhere: paper leaflets, a dozen NHS web pages, group-chat advice, and a camera roll full of half-remembered class notes. I wanted to build the opposite of that anxiety: one calm companion that holds the whole journey for you, week by week, and quietly turns your own messy inputs into something genuinely useful.
I experienced this journey personally, and it made me realise how overwhelming it can feel to prepare for something that matters more than anything. Every week brings new questions: Is this normal? What should I be doing now? What happens next? What should I remember?
As a parent-to-be, I wanted to build something that would give my child the best possible start not just by tracking appointments and milestones, but by helping us feel more prepared, connected, and present throughout the journey. I started imagining a companion that could hold everything we were learning, the memories we were creating, and the decisions we were making something my child could one day look back on and feel how wanted they were from the very beginning.
I wanted to build the opposite of anxiety: one calm companion that holds the whole pregnancy journey for you, week by week, and quietly turns your own messy inputs into something genuinely useful.
A companion that knows your timeline, remembers your questions, helps you prepare for appointments, explains what matters now, and captures the small moments that become the memories of becoming a family.
What it does
Bloom is a mobile-first pregnancy companion organised around a personal timeline:
- Today - where you are this week, baby's size, and what matters now.
- Care - the full NHS antenatal pathway modelled as a journey: booking, the 12- and 20-week scans, blood tests, screening, vaccines and birth prep, with a live progress counter.
- Symptoms - 30-second daily check-ins that become real insight: mood, energy, sleep and nausea charted across the whole pregnancy, by trimester.
- Learn - snap a photo of your class notes or upload a handout, and Bloom reads it with Claude vision and writes a complete study module: takeaways, "what matters most", a before/after-birth actions checklist, flashcards, questions for your midwife, and a "Future Me" timeline that resurfaces each insight at the right moment (e.g. first-latch tips in the first hour).
- Memories - a private journal with photos, video and voice notes.
- You - your details, baby's gender, and even the app's colour scheme.
- Ask Bloom - where you can ask anything from Bloom intelligence.
How I built it
The architecture is deliberately full-stack and serverless:
- Front-end + backend: Next.js (App Router) on Vercel. React Server Components and Server Actions are the backend, there's no separate API tier.
- Database: Amazon Aurora PostgreSQL (Serverless v2), accessed over HTTP via the RDS Data API. Pregnancy is deeply relational; a parent has appointments, symptom logs, memories and classes that all connect so I designed one deliberate relational schema (with
pgvectorenabled for future semantic recall) rather than reaching for NoSQL. - Media: Amazon S3 behind presigned URLs for photos, video and voice.
- AI: Anthropic Claude reads uploaded notes/images and returns structured learning material, which I persist as JSONB in Aurora.
Every write ticking off a scan, logging a symptom, generating a class, flows through a single query() layer to Aurora through the Data API.
Challenges I ran into
- Serverless ↔ relational. Traditional Postgres drivers exhaust connections from serverless functions. The RDS Data API was the unlock: HTTP + IAM, no VPC, no pooling. Getting there meant learning its type system
UUIDtype hints,::timestamptzand::jsonbcasts, array literals. - A platform-level 404 on Vercel that turned out to be a
framework: nullproject setting, not our code, a long hunt that taught me a lot about the deploy pipeline. - No-duplication AI flow. Slow generation let users double-submit; I moved to a single-step upload→generate flow guarded by transitions.
Accomplishments that I'm proud of
- A clean serverless-to-Aurora integration that feels effortless.
- An AI learning module that turns your own class photos into a structured, time-aware coach not a generic chatbot.
- A genuinely cohesive design: one warm language (Instrument Serif + aurora gradients) from the timeline to the charts to the AI output, front-end and data layer designed in relation to each other.
What I learned
That the database choice is a product decision, not just plumbing. Modelling the antenatal journey relationally in Aurora is what makes the symptom trends, the live care counter and the "Future Me" timeline possible and the Data API is what makes that model reachable from a serverless front-end without friction.
What's next for Bloom
pgvector-powered semantic recall ("what did my midwife say about iron?"). ✅- Partner mode (read-only sharing with Max) and clinician-friendly exports.
- Audio transcription for voice class notes, and richer postpartum support.
Business Model (Monetizable B2C)
Freemium model, with AI and data-powered features behind a subscription.
| Tier | Price | Includes |
|---|---|---|
| Free | £0 | Timeline, antenatal journey checklist, symptom logging, memories journal |
| Bloom+ | £6.99/month | AI learning material from your own notes, semantic recall ("Ask Bloom"), pregnancy-wide trends, unlimited media |
| Partner | £9.99/month | Everything in Bloom+, plus read-only sharing with a partner and clinician-friendly exports |
Unit Economics
The model works because expensive AI infrastructure costs (Claude generation, Gemini embeddings) are gated behind paying users, while Aurora Serverless v2 scales to zero for free-tier idle accounts.
Built With
- amazon-aurora
- amazon-rds-data-api
- amazon-web-services
- anthropic-claude
- aurora-serverless-v2
- claude-vision
- jose-jwt
- next.js
- node.js
- pgvector
- postgresql
- react
- tailwindcss
- typescript
- vercel


Log in or sign up for Devpost to join the conversation.