Inspiration

Almost everyone in the UK has opened an NHS letter and felt a small jolt of panic. The words are clinical, the urgency is unclear, and the action you're supposed to take is buried under jargon. "2-week wait" sounds terrifying but is a routine referral pathway. "DNA" doesn't mean genetics, it means "did not attend." People miss appointments, panic over nothing, or ignore letters they can't decode. The letter is already written in English. It's just not written for the person reading it. We wanted to fix that gap without a clinician in the loop.

What it does

You paste the text of your NHS letter, or photograph it with your phone. Plainly gives you back:

  • What this letter actually says, in plain words written for an 11-year-old reading age.
  • How urgent it is (routine / soon / urgent), based only on what the letter states.
  • What to do, as concrete steps with any dates pulled straight from the letter.
  • Questions to ask your GP or booking team.
  • Jargon decoded, each term with a one-line plain meaning.

The one rule it never breaks: it explains, it never diagnoses. It adds no clinical judgement, invents nothing, and gives no medical advice. If anything in the letter sounds time-sensitive, it points you to the right NHS route (GP, 111, or 999) without ever telling you what's wrong with you. Plainly is an independent tool, not affiliated with the NHS.

How we built it

  • Next.js 16 (App Router) + React 19 + Tailwind CSS v4 for a fast, mobile-first UI.
  • A single route handler (/api/decode) that calls Google Gemini 2.5 Flash with responseMimeType: "application/json" and a strict system prompt that hard-codes the safety rules (explain only, never diagnose, never invent).
  • Text and image input. Photos are read client-side and sent inline, so a patient can just snap the letter on their phone.
  • Deployed on Vercel.

Challenges we ran into

  • The safety boundary. The hard part isn't the AI, it's stopping the AI. Every prompt iteration was about making sure it explains what's on the page and refuses to add a prognosis or judgement, even when the letter is alarming.
  • Trusting nothing from the model. The LLM returns JSON we then render. We coerce every field to its exact expected shape so a malformed response can never crash the result view or show an object where text should be. Untrusted input, treated as untrusted.
  • Signalling non affiliation. We use the word "NHS" descriptively but use no NHS logo, colours, or branding, and added an explicit non-affiliation disclaimer.

Accomplishments that we're proud of

It was easy to get bogged into what would make a perfect MVP, but I am proud that we clearly defined a scope and ensured that we could ship something of value.

What we learned

The most useful health tool here isn't one that gives answers. It's one that removes the fog from information the patient already holds. Constraint was the feature.

What's next for Plainly - 35

  • More languages. The NHS serves millions whose first language isn't English. This is where it could matter most.
  • Read-aloud for accessibility and low-literacy users.
  • Save / share a decoded letter with a family member or carer.
  • A "remind me" handoff for the dates it extracts.

Built With

Share this project:

Updates