Health Records
Health & Fitness · React + Node (Express) · 24 @molecule/* packages
MyChart-like personal health records with conditions, medications, labs, vitals, immunizations, and document management — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (21)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Records
/records(signed in) - Medications
/medications(signed in) - LabResults
/labs(signed in) - Documents
/documents(signed in) - Sharing
/sharing(signed in) - Settings
/settings(signed in) - RecordDetail
/records/:id(signed in) - MedicationDetail
/medications/:id(signed in) - LabResultDetail
/labs/:id(signed in) - Immunizations
/immunizations(signed in) - Visits
/visits(signed in) - VisitDetail
/visits/:id(signed in) - Notifications
/notifications(signed in) - Profile
/profile(signed in) - InviteShare
/sharing/new(signed in)
Data model (15 tables)
- allergies — id, user_id, allergen, substance, category, reaction, severity, onset_date, …
- conditions — id, user_id, name, icd10_code, status, severity, onset_date, resolution_date, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- immunizations — id, user_id, vaccine_name, cvx_code, dose_number, series_total, administered_date, administered_at, …
- lab_result_values — id, result_id, user_id, test_name, value, unit, reference_low, reference_high, …
- lab_results — id, user_id, panel_name, test_name, category, ordered_by, ordering_provider, performing_lab, …
- medical_documents — id, user_id, title, kind, category, s3_key, file_url, file_name, …
- medications — id, user_id, name, generic_name, dosage, frequency, route, prescriber, …
- notifications — id, user_id, kind, payload, read_at, created_at
- permission_grants — id, owner_user_id, recipient_email, recipient_user_id, recipient_name, role, scope, starts_at, …
- visit_diagnoses — id, visit_id, user_id, condition_id, icd10_code, description, created_at
- visit_orders — id, visit_id, user_id, kind, description, status, created_at
- visits — id, user_id, provider_id, provider_name, clinic_name, scheduled_at, completed_at, chief_complaint, …
- vitals — id, user_id, recorded_at, vital_type, value, secondary_value, unit, blood_pressure_sys, …
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
API (14 handlers)
- \_seed
api/src/handlers/_seed.ts - allergies
api/src/handlers/allergies.ts - conditions
api/src/handlers/conditions.ts - documents
api/src/handlers/documents.ts - immunizations
api/src/handlers/immunizations.ts - labs
api/src/handlers/labs.ts - medications
api/src/handlers/medications.ts - notifications
api/src/handlers/notifications.ts - profile
api/src/handlers/profile.ts - records
api/src/handlers/records.ts - sharing
api/src/handlers/sharing.ts - stats
api/src/handlers/stats.ts - visits
api/src/handlers/visits.ts - vitals
api/src/handlers/vitals.ts
Subscription tiers
free / pro / team — gated by: maxAllergies, maxConditions, maxDocuments, maxImmunizations, maxLabs, maxMedications, maxVitals, advancedFeatures, canExport, retentionDays
Built from 24 @molecule/* packages
@molecule/api-cron-node-cron@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-encryption-aes@molecule/api-entitlements@molecule/api-import-export-csv@molecule/api-middleware-validation@molecule/api-payments-stripe@molecule/api-pdf-pdfkit@molecule/api-permissions-custom@molecule/api-push-notifications-web-push@molecule/api-reporting-database@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-charts@molecule/app-command-palette@molecule/app-data-table@molecule/app-date-range-picker@molecule/app-file-upload@molecule/app-timeline
Required secrets
DATABASE_URLPostgreSQL connection stringMEILISEARCH_API_KEYMeilisearch API keyENCRYPTION_KEYAES encryption key for PHI dataVAPID_PUBLIC_KEYVAPID public key for push notificationsVAPID_PRIVATE_KEYVAPID private key for push notificationsMAILGUN_API_KEYMailgun API key for email notificationsMAILGUN_DOMAINMailgun domainS3_BUCKETS3 bucket for medical documentsS3_ACCESS_KEY_IDS3 access key IDS3_SECRET_ACCESS_KEYS3 secret access key
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing