Every patient, prescription and invoice for the shop in one place
From the eye test to the till: capture the prescription, pick the frame and lenses, and print an itemised, paid invoice in under a couple of minutes.
Paper prescription cards and handwritten bills don't scale past a busy Saturday.
Old prescriptions live in a drawer, so a repeat customer means digging through files. Bills are written by hand, frame stock is guessed at, and there's no quick answer to "what did we take today?"
A mis-copied axis or the wrong lens index means a remake at the shop's cost. A missed reorder means an empty display. And the queue at the counter grows while the optician flips through paperwork instead of serving the next patient.
One system runs the counter — from eye test to paid invoice.
An optical-shop management app built on Next.js + Prisma + PostgreSQL (TypeScript, Tailwind). Every patient, prescription, frame and lens lives in one searchable place, and an invoice is generated straight from the prescription.
Our Approach
Record the patient
Create a searchable record — name, contact, date of birth and notes — so a repeat customer's last visit is always to hand instead of buried in a drawer.
Capture the prescription
Log OD/OS SPH, CYL, AXIS and ADD, plus PD and vision type, against the patient — no mis-copied axis, no wrong lens index.
Bill from the prescription
Build an itemised invoice straight from the reading — frame, lenses and coating — with subtotal, discount and total worked out for you.
Take payment & track stock
Record cash, card or UPI with part-payments and a clear paid status, while the dashboard flags unpaid invoices and low-stock frames before the display runs empty.
The eye test, recorded once and never re-typed
Right eye (OD) and left eye (OS) each take a full reading — sphere, cylinder, axis and add — alongside PD and vision type. It's stored against the patient, so the next visit starts from their history, not a blank card.
Frame, lenses and coating add up to a paid bill
Add the chosen frame, the lens pair and any coating; the app itemises them, applies a discount and lands on the total. Record the payment — cash, card or UPI — and the invoice is marked paid, no calculator required.
Every prescription searchable, every bill itemised — the counter keeps moving.
Low-stock alerts mean the display is never caught empty.
700+ projects · 450+ UK/EU buyers · 5★ on PeoplePerHour