Inspiration
Medication safety information exists, but it rarely reaches patients in a personalized and timely way.
Every year, 1.5 million Americans are harmed by medication errors. The FDA publishes 100,000+ drug safety signals annually, but patients receive zero proactive, personalized alerts. Meanwhile, 53 million unpaid caregivers manage prescriptions for family members with no dedicated safety tooling.
Important updates stay buried across FDA.gov, PubMed, and fragmented medical news — so people miss the one signal that actually matches their own prescription list.
We built MediGuard AI to close that gap: real-time medication safety intelligence that is personal, source-linked, and understandable.
What it does
MediGuard AI monitors live safety signals and turns them into actionable, plain-language alerts tailored to each user's medications.
Users add medications once, then MediGuard:
- Crawls live sources (FDA, PubMed, and medical web signals) via Nimble
- Matches findings to the user's medication list with Anthropic Claude
- Scores relevance/confidence and filters low-signal noise (server-side threshold: confidence ≥ 0.75)
- Deduplicates repeated alerts by normalized source URL
- Pushes updates in real-time to the dashboard (Supabase Realtime)
- Sends critical alerts via email (Resend)
- Supports caregiver read-only access via secure magic link
- AI Chat — ask safety questions; Claude streams answers using live Nimble sources with cited URLs
Every alert includes a traceable source URL for transparency.
Disclaimer: MediGuard aggregates public FDA/PubMed data in plain language. It is not medical advice — always consult your physician or pharmacist.
How we built it
We built MediGuard AI with:
- Next.js 14 + TypeScript (App Router)
- Supabase (Auth, PostgreSQL, RLS, Realtime)
- Nimble API (live web Extract + Search)
- Anthropic Claude Sonnet (safety analysis + agentic tool-use in chat)
- Resend (critical email notifications)
- Tailwind + Recharts (UI + visualization)
- Three.js (health-themed animated background experience)
- PM2 + Nginx (production VPS deployment)
How we use Nimble (Nimble Challenge)
MediGuard is an agentic safety app powered by live web intelligence — not a static drug database:
- Nimble Extract — crawl FDA Drug Safety Communications (
crawlFDAAlerts) with public RSS fallback - Nimble Search — per-medication medical news and safety queries (
searchMedicalNews) - Nimble Extract — PubMed search results per drug (
crawlPubMed)
Sources run in parallel on every scan (on-demand via Scan Now, or every 6 hours via cron webhook).
Agentic architecture:
- Perceive — Nimble gathers fresh FDA, PubMed, and medical news for the user's medication profile
- Reason — Claude scores severity, assigns confidence, and writes plain-language action steps
- Act — alerts persist to Supabase with Realtime push; critical alerts trigger email; caregivers get read-only magic links
- Remember — URL deduplication prevents alert fatigue from repeated sources
AI Chat uses a separate agentic path: Claude calls Nimble tools (FDA Extract, medical Search, PubMed) in a tool-use loop before streaming answers, with a "Nimble sources fetched" panel showing live URLs.
Verify Nimble without login: https://mediguard.adindamochamad.com/api/health/nimble
Core pipeline
- Collect live health content from external sources (Nimble)
- Analyze relevance against user medication profile (Claude)
- Filter by confidence threshold (≥ 0.75) and Zod schema validation
- Deduplicate recurring signals by source URL
- Persist alerts to database + scan audit log
- Push realtime updates and send critical notifications
Challenges we ran into
- Balancing live-data freshness with demo reliability (hybrid mode: cached scan for stage speed, live Nimble in AI Chat)
- Reducing irrelevant/noisy alerts while preserving important signals
- Keeping medical communication understandable without sounding diagnostic
- Making a rich UI visually engaging while maintaining readability and trust
What we learned
- In healthcare UX, clarity and trust matter as much as model quality
- Source transparency is essential for user confidence in AI-assisted outputs
- Real-time systems need strong fallback strategies for stable demos
- Product storytelling strongly affects how technical work is evaluated
Accomplishments that we're proud of
- End-to-end production workflow from live Nimble signals to personalized alerts
- Realtime alert dashboard with caregiver sharing support
- Critical notification channel (email) integrated into workflow
- Agentic AI Chat with Claude tool-use loop over live Nimble sources
- Production deployment with judge-ready demo account and health-check endpoints
- Polished, health-themed UI and demo-ready experience
What's next
- Better risk stratification and explainability per alert
- Expanded caregiver and provider collaboration workflows
- Trend and longitudinal monitoring features
- More integrations and compliance-ready roadmap
Business model:
- B2C: $9/month for unlimited scans + caregiver seats
- B2B: white-label for home-health agencies and senior living facilities
- Distribution: pharmacy partnerships and employer wellness programs
Built With
- anthropic
- next.js
- nginx
- nimble-api
- pm2
- postgresql
- recharts
- resend
- supabase
- tailwindcss
- three.js
- typescript


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