Alba: a free dental clinic template that books the chair, not a callback

Search for a dental clinic website template and you get a page of Framer, Wix and WordPress designs. I opened two of the top ones in October 2026. Framer's DentalCare ($38) describes "placeholders for online booking". Themeisle's BrightSmile Dental talks about simplifying online booking without saying what does the booking. In both cases the clinic still has to buy a booking system and wire it in, and the nicest-looking button on the page leads to someone else's widget.
Alba is the template we built so the booking is the template. It's a free, MIT-licensed Next.js site for a multi-location dental group, wired to Opencals, the booking and checkout engine we build. If you run a practice, or build sites for practices, and you want patients to pick a treatment, a clinician and a real time, pay or choose to pay at the studio, and manage their own visits, Alba does it out of the box. If you need clinical records, charting or insurance claims, that's practice-management software, and I'll say where the line is below.
Alba is a free dental clinic booking website template (Next.js 15, MIT licence) on the Opencals API. Patients can start from a Smile Check on a 32-tooth chart that suggests the right visit, book on a chair-time planner that snaps the hygienist on straight after a check-up, pay by card or at the studio, and manage visits for the whole family in My Smile. It ships with five London studios, 26 clinicians, 25 treatments and a separate children's site. The template is free; bookings run on a free Opencals development store for testing, then cost $0.99 each or $14.98 a month for 300 (checked 28 October 2026).

Patients don't know which appointment to book, so Alba asks about the tooth
Most dental booking flows open with a list: New Patient Exam, Check-up, Emergency Appointment, Composite Bonding Consultation. A patient with a chipped front tooth doesn't know which of those they need, so they phone, and the phone is what the website was supposed to replace.
Alba's Smile Check starts from the mouth instead. It's a real 32-tooth chart with FDI numbering. The patient taps the teeth on their mind, says what's going on (it hurts, chipped or broken, sensitive, colour or stains, crooked or gaps, a missing tooth, or "I'm just due a check-up") and sets a comfort dial from calm to anxious. It takes about 30 seconds, it says plainly that it's not a diagnosis, and it ends by suggesting the visit and the studio with the soonest time, with the booking already filled in.

The comfort level doesn't stay on the website. It travels with the booking as a pre-visit answer, so the dentist sees "nervous" before the patient sits down.
The hygienist straight after, on the same chair
The booking page at /book is one screen built around a chair-time track. Each treatment is a block as long as its minutes, add-ons hang off it as tabs, and after a check-up the hygienist snaps on as the next block: same chair, no second trip. Under the track you pick the treatment, the studio (with a notice when another studio has a sooner time), the clinician or "first available", the day, the time, extras and who the visit is for. Pencil it in holds the chair while the patient finishes checking out.
These are the demo store's treatments and prices, read from the live demo on 28 October 2026 (seeded data, so a starting point rather than a price guide):
| Department | Treatment | Length | Price |
|---|---|---|---|
| General dentistry | Check-up | 30 min | £65 |
| General dentistry | New Patient Exam | 45 min | £95 |
| General dentistry | White filling, one surface / two or more | 45 / 60 min | £150 / £210 |
| Hygiene | Hygiene clean / deep clean / AirFlow | 30 / 45 / 45 min | £85 / £120 / £135 |
| Cosmetic | Teeth whitening consultation / in-chair whitening | 20 / 90 min | Free / £450 |
| Orthodontics | Clear Aligner Consultation | 30 min | Free |
| Implants | Implant Consultation | 45 min | £95 |
| Emergency | Emergency Appointment | 30 min | £110 |
| Children's | Kids Check-up, ages 3–6 / 7–12 / 13–17 | 30 min | £45 / £45 / £55 |
| Video | Emergency Video Triage | 15 min | £25 |
Options such as "deep clean" or an age band are variants of one treatment, each with its own length and price. The four add-ons in the seed are happy air, fluoride varnish, an AirFlow stain polish (£35 in the demo) and digital X-rays (£40). Discounts are seeded too: the code NEWSMILE and an early-bird hygiene discount.
Deep links prefill the planner, which is handy for a "book with Dr Whitmore" button on a clinician's page or an email to nervous patients: /book?service=check-up&clinic=marylebone&staff=helena-whitmore&comfort=nervous.
Five studios, 26 clinicians and a video room in one store
A dental group is several practices sharing one brand and one patient list. In Alba every studio is an Opencals location with its own opening hours (Marylebone, Shoreditch, Notting Hill, Canary Wharf and Clapham in the demo), plus one online location for video consultations. A Today at Alba board on the homepage shows each studio's status and its next free check-up and hygiene times, straight from the diary.
Clinicians are staff members, 26 of them in the demo: dentists, hygienists, paediatric dentists, orthodontists, an implant surgeon and an endodontist. Each treatment books one clinician and is offered only at the studios where its clinicians work, so a children's service only shows up at the three studios with a kids room. Patients can filter dentists by studio, speciality and language.
Alba Kids is a second site for the patients who are scared
Children get their own site at /kids with its own type, colours and navigation: a cut-paper picture book called Pip and the Tooth Town adventure, drawn in SVG and CSS. Every children's service from the store becomes a stop on a board-game road through Tooth Town, with its price, length, age options and studios.

Around it there's a fold-out "your first visit" leaflet, a two-minute brushing game, a questionnaire for parents written as a story that ends with the visit to book, and, after the appointment, a printable certificate of bravery and a stamp in the child's Tooth Town passport. The booking behind all of it is the same engine as the adult site, with "who is this for", the child's name and a nickname collected as pre-visit questions.
A stamped appointment card, and an account that remembers the recall
Checkout is laid out as a patient record: the visits as small chair-time lanes, the patient's details, payment by card through Stripe or at the studio, and the fees. The confirmation is the classic dental appointment card, filled in with the date, time, clinician and patient and stamped by the studio. Turn it over for what to bring and how to get there.

Underneath, "Pencil in your check-up" puts a reminder six months out into the patient's own calendar, linking straight back to the booking page.
The account, My Smile, uses a 6-digit code or a magic link instead of a password. It shows a recall ring with when the next check-up and hygiene visit are due, the next appointment card, a history timeline and a family switch: visits booked for a child or a partner are grouped by patient. Patients can reschedule or cancel up to 24 hours before.

Mapping a dental group onto Opencals
Alba uses existing Opencals features only. If you're setting it up for a client practice, this is the pattern to copy:
| In the practice | In the Opencals store |
|---|---|
| A studio or surgery | A location with its own opening hours |
| Video consultations | One location of type online |
| A department (hygiene, implants) | A collection, mapped to a department in lib/site-config.ts |
| A treatment with options | A product group whose options are variants, each with its own length, price and clinicians |
| A dentist, hygienist or orthodontist | A staff member; bios, titles and languages live in lib/site-config.ts |
| Pre-visit questions | Checkout questions (who the visit is for, date of birth, comfort level, concern, child's nickname) |
| The hygienist straight after | A second appointment in the cart, starting where the first one ends |
| Happy air, X-rays, fluoride | Add-ons |
Because answers travel with each visit, a family booking keeps each patient's details apart. A store without those questions simply books every visit for "Myself".
What Alba costs a five-studio practice
The template is free and stays yours under the MIT licence. You can build and test the whole site on a free development store, where every feature works and there's no card, but it's in test mode and can't take real payments. A live store pays per booking or a fixed monthly plan (opencals.com/pricing, checked 28 October 2026). A check-up with the hygienist straight after is two appointments.
| Appointments a month | Elastic ($0.99 each) | Custom ($14.98, 300 included, then $0.20) | Custom + customer self-service ($14.99) |
|---|---|---|---|
| 500 | $495.00 | $54.98 | $69.97 |
| 1,500 | $1,485.00 | $254.98 | $269.97 |
| 3,000 | $2,970.00 | $554.98 | $569.97 |
Elastic includes every feature and suits the first weeks. Past about 16 appointments a month the Custom plan is cheaper, and a five-studio group passes that in its first day. Patients rescheduling and cancelling from My Smile is the customer self-service add-on on Custom. Hosting the site (Vercel or any Node host) and Stripe's card fees are billed by them.
Where Alba stops
Alba is a booking website, and dentistry needs more than booking. Before you choose it:
- It's not a practice management system. There are no clinical notes, charting, X-ray storage, treatment plans or insurance claims. The Smile Check's tooth chart is a booking questionnaire, not a clinical chart. Most practices will run Alba next to their existing clinical software, not instead of it, and I haven't built a sync between the two.
- Deposits and no-show fees are in beta in Opencals. If your whitening or implant consultations need a deposit at booking, test it on a development store first, or take full payment for those treatments.
- Health data deserves a conversation. Pre-visit answers such as date of birth and comfort level are stored with the booking. If your practice needs a specific compliance commitment for patient data, talk to us before you launch; I'm not going to claim a certification on a template page.
- Recall reminders are the patient's. The six-month recall is a calendar note the patient saves, plus the due date on My Smile. The template doesn't run recall email campaigns.
- Currency follows the store. The demo store is created in the United Kingdom, which is why it prices in pounds. Create yours in your own country.
Launching it for your practice
- Create a free development store at app.opencals.com. To get the demo as it is, create it in the United Kingdom and choose the Alba Dental dataset: five studios plus video, 26 clinicians with portraits, 25 treatments in eight departments, four add-ons, the pre-visit questions, two discounts and sample bookings.
- In the dashboard, open Users → your user → API Keys and create a private storefront key (it starts with
spk_). Alba calls the API from its server and forwards each visitor's IP, so rate limits count per visitor, not per server. - Deploy with the button below and paste the key when Vercel asks.
| Variable | What goes in it |
|---|---|
OPENCALS_API_KEY | Your private storefront key (starts with spk_). The template forwards each visitor's IP with it, so rate limits count per visitor |
AUTH_SECRET | Any random string, used to encrypt patient sessions |
ALBA_PREVIEW | Optional. 1 turns on the /preview screens (appointment card, kids certificate, My Smile) in production |
Then put your deployed URL in Storefront Base URL in the Opencals dashboard, so the view, reschedule and cancel links in booking emails open your site. To rebrand, edit lib/site-config.ts (studios, clinicians, departments, Smile Check wording, recall intervals), lib/kids/kids-config.ts for the children's site, and the six colour tokens in app/globals.css. If you'd rather have an AI agent do the scaffolding, the Opencals Agent Skills work in Claude Code, Cursor, Codex and Gemini CLI.
Alba live demo
Run a Smile Check and pencil in a check-up with the hygienist after.
Alba on GitHub
MIT-licensed source. Fork it for your practice or a client.
Clarity: clinic template
Department-first booking with medical intake, on the same engine.
Clinic booking software compared
Six clinic booking tools and what each one costs.
Appointment deposits and no-show fees
When a deposit pays for itself, and when it costs you bookings.
Booking across several locations
What changes when patients choose which studio to book.
Gable: coworking template
Desks, rooms and booths planned on one day sheet.
Opencals pricing
$0.99 per booking or $14.98 a month for 300.
Frequently Asked Questions
Get started
Ready to transform your service business?
Join 150+ businesses already using Opencals. Start on a free development store with every feature unlocked, and only pay once you go live.




