Healthcare · optometry · Wichita Family Vision · Live 2026-08-07
Front desk knowledge base for an eye clinic: six months of training turned into one search.
The rules lived in 15 spreadsheet tabs and one manager's head. Now anyone at the desk looks it up in the 20 seconds a caller gives you.
~200hrs/yrof interruptions off the office manager's deskAn estimate, not a measurement: about 4 questions a day at 10 minutes each, 250 working days. The clinic has not timed it.
35pagesof protocol, plus a 41-row price grid, maintained by the staff themselves
The home screen the front desk sees. Clinic logo blurred; everything else is the live app.
What was broken
Before
Front desk training lived in 15 tabs of one spreadsheet, a separate scheduling protocol, a per-doctor rulebook, and the office manager's head. The dangerous exceptions were buried in parentheses. A new hire took about 6 months to learn the desk, and every unusual question interrupted a manager. Which doctor can see this patient? Do we collect for this or bill it?
What I built
The build
An installable web app on every front desk device: 35 protocol pages in 7 sections, a live 41-row price grid, and a report-an-issue loop that gets fixed the same day.
4 decision tools that force the buried exceptions open: which doctors a patient can see, the right price with prompt-pay, whether to collect or bill a refraction, and how urgent a symptom is.
In-app editing for 2 named managers, with revision history in plain English and one-click restore. No developer in the loop for a content change.
Google sign-in restricted to the clinic's domain, row-level security on every table, sanitized rendering that fails closed, a monthly export as the backup.
Managers edit in the browser; every change is kept and can be restored.The eligibility tool: answer 4 questions, get the doctors this patient can see.Installed on the front desk tablet as an app.
What changed
Before and after
Before
By hand
Where the rules live15 spreadsheet tabs, a protocol doc, a rulebook, one person's memory
An unusual questionInterrupt a manager
Learning the deskAbout 6 months
Changing a ruleEmail the developer, wait
Cost to runManager time
After
The system
Where the rules liveOne searchable app, 35 pages, 4 tools
An unusual questionSearch, answer in under a minute
Learning the deskWeeks, with the tools doing the hard cases
Changing a ruleEdit in the browser, history kept
Cost to run$0 a month in hosting
Where the numbers come from. The hours figure is an estimate the office manager agreed was fair, not a timed measurement: about 4 interrupting questions a day at 10 minutes each, 250 working days, gives roughly 200 hours a year. We will replace it with the clinic's own count after the next check-in.
For engineers
How it's built
Architecture
Static PWA on Vercel reading page content, prices, and revisions from Supabase over the REST API. Editors are a Postgres table; RLS gives everyone read and 2 named emails write. Rendering sanitizes at read time, not only at save, so a REST write can never reach a reader unfiltered.
Where it runs
Vercel (app), Supabase free tier (content, auth, revisions), Google Workspace sign-in locked to the clinic's domain. Installed as a PWA on the front desk iPad and PCs.
Tests and evals
21 regression tests plus a DOM-free sync-logic suite (31 assertions) covering restore, refresh, and the offline editor guard. Every test was written from a bug we actually hit.
Cost and latency
$0 a month to host. The clinic pays a small monthly retainer for the editing feature and a pass-through for the database tier.
Guardrails
A pre-merge security review caught 2 cross-site-scripting holes: page HTML was sanitized on save but not on render, and the editor parsed pasted HTML into the live DOM before cleaning it. Both fixed by sanitizing at render, failing closed. Monthly JSON export is the backup because the free tier keeps none.
The tradeoff we chose
Why this way and not the other
We built a plain PWA with search instead of the AI assistant layer the first scope had. Search on 35 well-structured pages answers the front desk's question faster than a chat box, costs nothing to run, and never invents a rule. The assistant is on the roadmap only if search ever fails a real staff question.