
Client Portal
A branded space where your customers see their documents, requests and invoices without emailing you.
Next.js · TypeScript · PostgreSQL · Auth.js
Your carePatient1 / 8
Most of a clinic's phone traffic is four questions asked repeatedly: when am I in, what did the test say, can I have a refill, and what is this invoice. This answers all four before the phone rings, and gives the front desk the same lists across every patient.
Next.js · TypeScript · PostgreSQL · Auth.js
Inside the app
24 connected functions on one schema, spanning two sides of the same clinic. Everything below is in the template before a line of customisation.
Opens on the next appointment, what is still pending from the lab, what is unpaid and what requests are open. Four answers before the phone rings.
Every result the clinic has released, by department and status. A pending result is visible but not downloadable, because releasing it is a clinical decision.
Active and expired medication with dose, frequency and prescriber, and a refill request that goes to a person rather than approving itself.
A month calendar with the booked days marked, the selected day in detail, and a history that keeps the missed ones on the record.
The full amount charged, what the insurer settled, and the share that is actually yours. Patients are entitled to see all three.
An administrative channel with categories that deliberately exclude symptoms, and a thread the patient can read back.
Open tickets, appointments today, overdue invoices and active patients, with attendance and ticket sources charted.
The whole diary by clinician and location. Unconfirmed is the number that predicts a wasted slot, so it is a status rather than a footnote.
Filtered by payer and status, showing what is still outstanding after the insurer settled, which is the only figure worth chasing.
One queue, one owner per ticket, aged from when the patient raised it rather than from when somebody opened it.
Not a clinical system. It does not calculate reference ranges, flag abnormal values, check interactions, dispense, or triage anything.
A patient reaches their own record and nothing else, enforced at the database row level, with every staff read written to an access log.
Permissions
A patient sees their own record and nothing else, enforced at the database row level rather than by hiding buttons. Clinic staff see the same information across every patient, and every record they open is logged.
The build
24 functions, all of them live in the preview. Nothing on this list is a mockup or a roadmap item.
What you get
Clinics, practices and care providers who want a patient-facing portal they own outright.
Access and evidence
In healthcare the question is never only what changed, but who looked. Record access is logged whether or not anything was edited, and access follows the care relationship rather than a job title.
Related

A branded space where your customers see their documents, requests and invoices without emailing you.
Next.js · TypeScript · PostgreSQL · Auth.js

Health scores, renewal calendars and QBR prep for the team that keeps revenue from leaking.
Next.js · TypeScript · PostgreSQL · Recharts

Announcements that require an action, tracked per employee, with reach reporting for managers.
Next.js · TypeScript · PostgreSQL · Auth.js
Questions
Yes. The repository, application code, database schema, migrations, seed data and deployment configuration, is transferred to your organisation on delivery. There is no licence key and nothing that calls home.
The template gives you the mechanisms compliance depends on, access logging on reads, scoped permissions, consent records, retention rules and self-hosting in your own region. It does not, and cannot, make you compliant by itself: that depends on your policies, contracts and how you operate it. We scope the specific controls your regulator expects as part of a fitted build.
Only staff with a care relationship to that patient, and the patient themselves. Scope is enforced at the database row level rather than by hiding navigation, so a reception account cannot reach clinical records even by manipulating a URL. Every view is logged.
No. It is the patient-facing layer that sits in front of whatever you already run. A fitted build integrates with your practice management or clinical system so appointments and documents flow both ways, leaving the clinical record where it is.
That is the usual route. A fitted build adjusts appointment types, result release rules, consent wording, ticket categories, billing and cover, branding and up to two integrations, and typically takes one to three weeks from a signed scope.
Hosting only, paid to your own cloud provider, roughly $50 to $200 a month depending on patient volume and document storage, with in-region hosting available where residency rules require it.
A fitted build adjusts fields, stages, roles and integrations to how your team already works. One scoping call, a fixed price, one to three weeks.
