Rethink AI-First Buildathon · 3rd place · April 2026 · Shipped in 10 days

Vitae: health records,
finally understood.

An AI-powered PWA built to turn a blurry prescription photo into a plain-language family health record, without creating an account. Built for family caregivers who manage a parent’s health from another city.

Health Tech AI / OCR PWA Buildathon Next.js

The short
version.

At a glance
RoleTeam of six with shared ownership. All six of us owned every part of the work.
WhenApril 6 to 15, 2026, at the Rethink AI-First Buildathon. Ten days from idea to live product. The team placed 3rd.
What shippedA PWA that turns a prescription photo into a plain-language family health record, with no signup for the core feature.
ResultLive product. The success metrics on this page are targets, not measured results.
LimitNo usage figures and no OCR accuracy measurement yet.
See itLive product ↗   GitHub ↗
Documentation
GitHub → Live Product →
PRESCRIPTION TO HEALTH TIMELINE, USER FLOW Photograph Prescription Upload to PWA Camera API OCR Extracts Text content AI enrichment AI Parser Claude API Record Created Structured data Timeline Updated User Views Health history Parse Fails Manual entry form
WIREFRAME, VITAE PWA SCREENS CAPTURE REVIEW TIMELINE Add Record Align prescription within frame Review Extract MEDICATION Metformin 500mg DOSAGE Twice daily PRESCRIBER Dr. Sharma DATE April 10, 2026 Confirm & Save Search records... Apr 10, 2026 Metformin 500mg Dr. Sharma Mar 22, 2026 Atorvastatin 10mg Dr. Mehta Feb 14, 2026 Amlodipine 5mg Dr. Sharma Jan 5, 2026 Telmisartan 40mg Dr. Patel
SYSTEM ARCHITECTURE, VITAE PWA + AI PIPELINE DEVICE PWA AI PIPELINE STORAGE CLIENT Camera Device API PWA Service worker AI Parser Claude API Supabase DB PostgreSQL Health Timeline React PWA view OCR Service Gemma 4 26B Health Record Data model OCR extracts raw text from prescription images; Claude API structures it into medication, dosage, and doctor fields

This page is the build record for Vitae. It covers the health-records continuity problem, the two-model AI pipeline, the PWA architecture, and the honest state of what shipped in the 10-day sprint versus what comes next.

Save as PDF →

Project overview

Overview

Vitae was built during the Rethink AI-First Buildathon (April 6–15, 2026) by a 6-person team, and won 3rd place. The product is live at vitaehealth.vercel.app. No signup is needed to try the core feature.

10 days From idea to live product
6 Team members
3rd Place at the Rethink AI-First Buildathon

Built by

Gaurav Gupta · Shardul Ayare · Preeti Singh · Varun Malani · Aashik Villa · Palak Punjabi.

Shared ownership. All six of us owned every part of the work, from discovery and the PRD to design and build. It is a team result. I do not claim any one layer of it as mine alone.

Built for doctors.
Not for families.

01 · Problem

The problem we chose was continuity, not access. Family health records can be fragmented across reports, prescriptions and messages. Vitae explored a shared record and explanation workflow for that problem.

The four breakdowns families face

Illegible handwriting

Doctor handwriting is notoriously difficult, even pharmacists struggle. Families receiving WhatsApp prescription photos have no way to decode them.

Impenetrable jargon

“Atorvastatin 10mg OD HS” means nothing to a non-medical family member. No plain-language translation exists in the current workflow.

Scattered across platforms

Paper slips, hospital portals, WhatsApp photos, camera rolls, no single source of truth. A family seeing several specialists keeps their records across disconnected channels.

Broken continuity of care

Prescriptions get lost between visits. Tests get repeated. Families lose track of active medications across multiple specialists.

Not abstract. This is every
family’s Sunday evening.

02 · Context

“I can’t read the doctor’s handwriting. I don’t know what Atorvastatin does. And I have no way to share a clean summary with Papa’s next doctor.”

Priya, 28, Bangalore (persona). Her father in Jaipur sees three specialists for diabetes, blood pressure, and cholesterol. After every visit, Papa sends a blurry photo of a handwritten prescription via WhatsApp.

Three people.
One health ecosystem.

03 · Users
👩‍💻

Priya, 28: Primary User

Young adult caregiver. Manages parents’ health remotely. Tech-savvy but not medically trained. Panics when Papa sends a new prescription on WhatsApp.

👴

Papa, 60: Benefits Indirectly

3 specialists. Multiple medications. No digital health record. Gets organised medication summaries without needing to be tech-savvy himself.

🩺

Dr. Sharma: Future User

Could receive a structured patient summary instead of crumpled paper, with the medication history in one place.

Most health-tech we looked at focuses on patients or providers. Vitae focuses on the family members who coordinate care between them.

Confused to clear,
in one flow.

04 · Solution

Vitae is built to turn a blurry prescription photo into a plain-language family health record, without creating an account. Under a minute is the design goal, not a measured result.

📸

Upload

Photo, PDF, or text. Camera, gallery, or WhatsApp screenshot. Any format works.

🤖

Understand

AI explains each medication, what it treats, how to take it, side effects to watch for.

👪

Organise

Save to a family health hub. Track active medications. Spot lab-result alerts. Share with family or the next doctor.

✓ No account to try Full explanation shown anonymously. Auth only at “Save”
✓ Any phone Works on any modern smartphone via PWA
✓ Handwritten Gemma 4 26B OCR reads handwritten prescriptions. Accuracy on hard handwriting is not yet measured
✓ Lab reports Same pipeline handles lab results with abnormal flagging

Zero friction
to full value.

05 · User Flow

Auth is deferred until save. The full explanation is delivered before asking for a single user detail.

#StageWhat happensDesign principle
1DiscoveryLanding page. “Upload a Prescription” CTA. No login prompt.Value-first, no friction
2UploadCamera, PDF, gallery, or manual text. WhatsApp tip shown.Camera leads, most prescriptions arrive as WhatsApp photos
3OCRGemma 4 26B multimodal extracts fields with confidence scores.A clear loading state while OCR runs builds trust
4ReviewUser confirms or corrects extracted data. Per-field confidence shown.Always shown regardless of OCR confidence
5ExplanationClaude explains every medication. “Ask your doctor” list generated.Plain language; 4 dimensions per medication
6Save & HubAuth gate triggers. Save to family profile. Active medications tracked.Value delivered before asking for any commitment

Example AI explanation output

Illustrative example of the explanation format. Not medical advice.

Metformin 500mg · Twice daily

Treats: Type 2 diabetes, helps lower blood sugar after meals

How to take: With meals, morning and night

Side effects: Nausea (common, usually fades in 1–2 weeks)

Avoid: Alcohol, heavy carbohydrate meals in one sitting

Atorvastatin 10mg · Once at night

Treats: High cholesterol, reduces LDL (“bad”) cholesterol

How to take: At bedtime with water

Side effects: Muscle aches (rare, report immediately if severe)

Avoid: Grapefruit juice (interferes with absorption)

Two pipelines.
One seamless flow.

06 · AI

Pipeline 1: OCR extraction

Model: Gemma 4 26B via OpenRouter (256K context, multimodal).

Reads the prescription image directly. Extracts doctor name, date, medication names, dosage, frequency, and duration. Assigns a confidence level (high / low) per field. The same pipeline handles lab reports, extracting test values, units, reference ranges, and flagging abnormals.

Pipeline 2: Plain-language explanation

Model: Claude (Anthropic).

Takes the structured prescription data and generates a 4-dimension explanation per medication: Treats · How to take · Side effects · Things to avoid. Generates a “Things to tell your doctor” actionable list. The explanation is cached in the DB, never re-generated on repeat visits.

A working stack,
shipped in 10 days.

07 · Tech
LayerTechnologyDetails
FrontendNext.js 16.2 · React 19 · TypeScriptApp Router, Server Components, Server Actions, Tailwind CSS v4, PWA with service worker.
Backend / DatabaseSupabase · PostgreSQL · RLSRow-level security on every table. Email + Google OAuth. Supabase Storage for prescription files.
OCR EngineGemma 4 26B · OpenRouterMultimodal, reads handwritten prescriptions from images. 256K context. Confidence scoring per field.
AI ExplanationClaude (Anthropic)Structured prescription data → plain-language explanation per medication. 429 fallback across a free model pool.
HostingVercelAuto-deploy from master branch. Live at vitaehealth.vercel.app.

How we’ll know
it worked.

08 · Success Targets

Every number in this section is a target set before launch. None of them is a measured result.

Acquisition

>70%Anonymous → explanation completion
>40%Explanation → sign-up conversion

Engagement

>2.5Avg. family profiles per account
>35%D30 retention (2nd prescription uploaded)

Virality

>25%Explanations shared (% of saves)
>15%Shared links → new sign-up rate

Quality

>80%OCR accuracy (user confirms without edit)
<10sUpload-to-explanation latency

MVP shipped.
What comes next.

09 · Roadmap

Now: Post-Buildathon

  • Shareable read-only links (WhatsApp virality loop)
  • Profile editing (name, DOB, photo, onboarding flow)
  • Doctor PDF export (structured summary for next visit)

Next: Growth

  • Medication reminders (push notifications at medication times)
  • Hindi + regional language explanations
  • Lab trends over time (glucose, cholesterol, BP charted across uploads)

Later: Monetise

  • Drug interaction checker (flag dangerous combinations across family medications)
  • Vitae Pro (unlimited profiles, reminders, pharmacy integration)
  • Pharmacy delivery bridge (one-tap order from prescription)

The viral loop

Caregiver shares a prescription link via WhatsApp → recipient (doctor, family, pharmacist) sees a clean prescription summary → “Try Vitae for your own family” acquisition hook in every shared link → new caregiver joins → uploads → shares → loop repeats.

Every WhatsApp share is a potential new user. The loop is a hypothesis, not a measured result.