Clinic Desk
v0.1.2
Open live demo → Screens
Overview
Two surfaces on one set of data. Patients find a real time and take it: the reason for the visit sets its length, so a 45-minute session offers visibly fewer starts than a 15-minute one, and a start that would overrun the lunch break or closing time is never offered at all. Behind the counter it is the morning itself — the day sheet column by column, the waiting room with each wait climbing on its own card, the accounts with what is still owed, and everyone due to be seen again. The manifest scaffolds nine tables — clinicians, opening hours, visit types, patients, appointments, recalls, charges and payments among them — into your connected database and generates the back office around them: records, reporting and the reference data the desk only reads. It is an appointment book and a front office, never a medical record: there is no column anywhere for a diagnosis, a code, a medicine or a result, and no page that would show one.
Capabilities
- Payments
- Email receipts
- Realtime
What you get
Tables it adds9
- clinicians
- clinician_hours
- visit_types
- patients
- appointments
- recalls
- charges
- payments
- closures
Created fresh, or mapped onto your existing tables at install.
Pages your dashboard gains6
- Practice dashboardSeen today, who is in the building, what is still owed, and the no-show rate.
- Day sheetA day and week calendar of every clinician’s appointments, tinted by visit type.
- PatientsA searchable directory with each person’s visits and when they are due back.
- Waiting roomWho has arrived, on status tabs, moved along one step at a time with an undo.
- AccountsCharges beside their payments, how old each balance is, and what was taken today.
- RecallsEveryone due to be seen again, soonest first, ticked off as they are booked in.
Roles it pre-builds2
- front-deskBooks and moves appointments, checks people in, raises charges and takes payments; registers patients but cannot delete them. No settings or role access.
- clinicianSees their own day and moves each visit along as they take it; reads patients and sets who should come back and when. No money, and no other clinician’s diary.
Settings you configure7
- Practice name
- Time zone
- Slot length (minutes)
- Count as not arrived after (minutes)
- Late cancellation window (hours)
- Currency
- Appointment reference prefix
Run it with your own data
Clinic Desk needs somewhere to keep your data. Answer one question and we will show you the shortest way there.
Do you already use Adminium?
Set everything up together
A static host can only serve the screens. Your data needs a database, and Adminium is what turns it into an admin you can use — so the three go up together.
Deploy everything to DigitalOceanPostgres, Adminium and Clinic Desk, already connected.
Rather try it on your own machine first?
npx @adminiumjs/adminium No database needed — it asks you for one when it is ready. Then come back here and pick “Yes” above.
Where is your Adminium?
The address you sign in to, for example https://admin.yourcompany.com
That does not look like a web address. It should start with https://
Where should Clinic Desk live?
Inside Adminium
One place to sign in, and nothing else to deploy. Your team reaches it from the same address as your admin.
Show me how
- Build it:
git clone https://github.com/Adminiumjs/clinic-desk.git && cd clinic-desk && npm install && npm run build:surface - Point Adminium at it and restart:
ADMINIUM_SURFACES_DIR=$(pwd)/dist-surface npx @adminiumjs/adminium start - Then open:
https://admin.example.com/apps/clinic/staff/
On its own domain
A separate site with its own URL, talking back to the Adminium you just named.
Vercel hosts the screens only — your Adminium stays where it is and keeps the data. You will paste one key that lets the site read it.
Deploy to VercelVercel will ask for two values. Both are on your Adminium under Studio → Public API.
Or start from the source
Clone it and run it anywhere — the README covers every option.
View on GitHubJust looking? The live demo needs no setup at all and nothing you do in it is saved. Open the live demo