The problem
Ask a language model about your medication and it will answer. It will sound confident, it may cite a study that does not exist, and it will never tell you which of those two things happened.
For a contract that is expensive. For a medicine it is dangerous. Someone checking whether their painkiller is safe alongside their blood thinner is making a decision that a fabricated sentence can genuinely harm them with.
What Leaflet does instead
Leaflet never writes a sentence about your medicines. It reads the labels the FDA approved, finds the passages that carry risk, and shows them to you with a link to the label they came from.
There is no step that produces new text, so there is no step at which a fabrication could enter. A test asserts it: every quote appears verbatim in an FDA label that was fetched.
What it finds
For each medicine, straight from the approved label: boxed warnings, which are the strongest warning the FDA issues; contraindications, meaning who must not take it; drug interactions and general warnings; and pregnancy notes.
The finding that matters
Warfarin and ibuprofen together raise bleeding risk. Leaflet finds this twice, from both directions.
Warfarin's label names ibuprofen in its drug interactions section. Ibuprofen's label warns about anticoagulants in its warnings section. Two independent FDA labels describing the same combination is a much stronger signal than either alone.
That second match only works because each medicine also carries the words its drug class is called in prose. A label warns about anticoagulants; it almost never says warfarin. Matching product names alone misses exactly the warning that matters most.
On a four-medicine list it also surfaces lisinopril with ibuprofen, which the label flags for renal impairment, and lisinopril with metformin, flagged for hypoglycemia. Both are real clinical concerns and both are quoted from the label rather than inferred.
Where the data comes from
openFDA for the approved label and every risk section. NIH RxClass for ATC drug class, so class-level warnings match. DailyMed for the human-readable label each citation links to. All three are United States government services, all public, none needing a key. No other database is consulted, because a warning that cannot be traced to a label has no business being shown to someone deciding what to take.
Picking the right label
Asking about metformin and being shown the label for a sitagliptin-metformin combination is not a near miss, it is a different drug's warnings. Candidates are ranked so an exact generic name match wins, each extra active ingredient counts against a label, and a label carrying real risk sections beats a minimal over-the-counter one.
Problems worth mentioning
The class matcher originally used a trailing word boundary, so the pattern for anticoagulant failed against the plural anticoagulants that labels actually use. That silently dropped half the interactions. In a medical tool a missed warning is the worst failure mode, because absence looks like safety.
Quoting originally rejoined split sentences with a space, which turned 8.1 Pregnancy into 8. 1 Pregnancy, text that does not exist in the label. The verbatim test caught it. Quotes are now contiguous slices of the original.
Privacy
The medication list never leaves your browser except as a drug-name query to the FDA's public API. No account, no server of ours, no storage, no telemetry. One self-contained HTML file with no dependencies.
Honest limits
This is not medical advice. It quotes public labels and does not know your history, your dose or your kidney function. US FDA labels only. A drug with no FDA label is reported as unmatched, never guessed at. A warning phrased in wording the matcher does not recognise is missed, and a miss appears as nothing rather than as reassurance.
Log in or sign up for Devpost to join the conversation.