All Startup Ideas

Multi-Doctor Medication Interaction Checker

Track every prescription, supplement, and OTC in one profile that re-screens the whole list for documented interactions each time something changes.

An adult daughter opens her mother's kitchen cabinet and counts eleven bottles. Four came from the cardiologist, three from the primary care doctor, two from a rheumatologist her mother started seeing in March, and two are supplements bought at the pharmacy counter because a friend recommended them. Each prescriber knows about their own two or three. None of them has ever seen the full eleven at once. The pharmacy caught one conflict at fill time, but only because those two happened to be filled at the same location — the mail-order prescriptions never touched that system at all.

Built for Solo Founders, Developers, Weekend Builders.

The medication management software market is valued at $8.17B in 2025, projected to $9.11B in 2026 and $23.29B by 2034 at a 12.45% CAGR (Fortune Business Insights). That is institutional-heavy today, which is precisely where the consumer gap sits.

Suggested stack: Next.js 15 (App Router) on Vercel, RxNorm (NIH/NLM) as the canonical identifier layer, openFDA APIs (FAERS + drug labeling), Supabase (Postgres + Auth), Google Cloud Vision or Tesseract for label OCR, Claude Haiku 4.5 for plain-language explanation only. Weekend scope: about 10 hours.

The Problem

An adult daughter opens her mother's kitchen cabinet and counts eleven bottles. Four came from the cardiologist, three from the primary care doctor, two from a rheumatologist her…

The Solution

A persistent medication profile that re-checks itself. The user adds every prescription, supplement, and over-the-counter item once — by scanning the bottle label with a phone…

Market Research

The medication management software market is valued at $8.17B in 2025, projected to $9.11B in 2026 and $23.29B by 2034 at a 12.45% CAGR (Fortune Business Insights). That is…

Competitive Landscape

Drugs.com Interaction Checker — The consumer default, and the reason most people never pay for anything in this category. Huge database, genuinely good, completely free. But it is…

Business Model

Free ($0) — Unlimited one-off interaction checks, up to 5 saved medications, single user. The SEO capture layer and habit builder.

Recommended Tech Stack

Next.js 15 (App Router) on Vercel — Server Actions for the screening pass, route handlers for OCR upload. Mobile-first responsive rather than native, so a caregiver can open it…

AI Prompts to Build This

Copy these build prompts into Claude, Cursor, or your AI coding tool. Create a free account to unlock the full research behind them.

  1. 1. Project Setup

    Build the weekend MVP of "CabinetSafe": a person lists every prescription, supplement and over-the-counter medicine once, and the app re-checks the whole list against documented interaction records every time something changes. It reports what the records say. It gives no medical advice.
    
    Stack: Next.js (App Router), TypeScript, Tailwind, Supabase (Postgres, Row Level Security, Auth with email magic link), the RxNorm API from the US National Library of Medicine to identify drug names. The interaction records are a table you load from published sources, each with a source name and a link. No model writes any medical text. Deploy on Vercel.
    
    Tables (Row Level Security on, a user reads only their own profiles; interaction_records is read-only to signed-in users):
    - profiles(id, owner_user_id, display_name, birth_year)
    - medications(id, profile_id, rxcui, display_name, raw_input, dose, kind, prescriber, added_at, stopped_at) kind is prescription, otc or supplement
    - interaction_records(id, rxcui_a, rxcui_b, severity, source_name, source_url, record_text) severity is major, moderate or minor
    - screens(id, profile_id, run_at, medication_ids uuid[], flag_count)
    - flags(id, screen_id, rxcui_a, rxcui_b, severity, source_name, source_url, record_text)
    
    Screens: /login, /cabinet/[profileId] (the list and the flags), /summary/[screenId] (one printable page).
    Env vars (names only): NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server only).
    
    Do not build: billing, plans or a care circle, a camera or label scanner, a model that explains interactions, sharing between accounts, reminders, any dosing or stopping advice.
    Done when: npm run dev starts, you can sign in, and the five tables exist with Row Level Security on.
  2. 2. Core Feature

    Build the one feature that proves CabinetSafe: a full-list check that is honest about what it does not know.
    1. Load about 20 interaction records into interaction_records from a CSV you assemble from published sources such as FDA drug labels. Each row needs both RxNorm ids, a severity, the record text, a source name and a source URL. Do not write records from memory.
    2. Adding a medicine: search RxNorm by name with approximate matching. If the match is weak or there are several candidates, do not guess. Show the candidates with strength and form and make the person pick one. Save the chosen rxcui and the text they typed.
    3. After any add, stop or dose change, run a full screen: build every unordered pair of active medications, look up each pair in interaction_records in both orders, and save one screens row and a flags row per hit. The page must never show a result older than the list.
    4. Rank flags major, then moderate, then minor. Show the top 3 above the fold and put the rest behind "N lower-severity notes". Each flag shows the record text as written and a link to its source.
    5. When a pair has no record, the page says "No record found in our data" and never says safe or no interaction. Show how many pairs were checked.
    6. /summary/[screenId] is one printable page in 12-point type: the full medicine list, the flagged pairs with their sources, three questions for a pharmacist taken from a fixed list and this line: "This lists published interaction records for discussion with a pharmacist or physician. It is not medical advice."
    Rules: never advise stopping or changing a medicine. Use an 18-pixel base font, 44-pixel tap targets, AA contrast and full keyboard use. A Delete profile button removes everything.
    Empty state: with no medicines, show one field and the line "Add everything you take, including supplements".
    Done when: a profile with two seeded interacting drugs shows a flag with its source, adding a third re-screens all pairs, an ambiguous name forces a pick, a pair with no record says "No record found in our data", and the summary prints on one page.
  3. 3. Landing Page

    Build a one-page landing site for CabinetSafe, a medicine list that checks itself, for adult children helping a parent.
    Hero: "Every doctor sees their own prescriptions. Nobody sees all of them." Sub: "List every prescription, supplement and over-the-counter medicine once. We re-check the whole list each time something changes and give you one page for your pharmacist." One button: Join the waitlist.
    Sections: a quiet opening about counting bottles on a kitchen counter, a diagram of a one-pair lookup against a full-list check, how it works in four steps (add, check, watch, print), a sample one-page summary, a trust block (records come from published sources and each links to its source, and it never diagnoses, advises or replaces a pharmacist) and an FAQ on supplements, several pharmacies, printing and deleting your data.
    Waitlist: store the email in a waitlist table in Supabase. No other service.
    Style: Geist at a generous size, a warm off-white background, deep ink type, one muted teal accent, a calm voice with no fear.
    Done when: the page renders on a phone and a submitted email appears in the waitlist table.
  4. 4. Branding Package

    Use a design or image tool for this one. A coding agent cannot draw a logo.
    Brand for CabinetSafe: a wordmark and an icon that suggest a small cabinet door that is slightly open.
    Colors: warm off-white, deep ink and one muted teal. Type: Geist at a generous size.
    Deliverables: wordmark, icon, three severity chips (major, moderate, minor) that differ by shape and word as well as color, a printable summary header, and one launch graphic.
    Done when: each deliverable is saved in one folder and the severity chips are distinguishable without color.