Offer Pricing Case Studies About Book Consultation
SaaS / PWA Healthcare Multi-Tenant

DentaBook.
A complete dental practice management SaaS.

Multi-tenant platform for dental clinics: online patient booking, anatomical dental chart, CRM, SMS confirmations, FullCalendar scheduling, file management, and printable patient cards. 14 database models. 4 user roles. 6 development phases. Built by one engineer.

VISIT DENTABOOK

14

Database Models

6

Dev Phases

<2m

Booking Time

1

Engineer

The Challenge

Dental clinics run on paper and phone calls.

Most dental clinics in Poland still rely on phone-based appointment booking — a receptionist manually answering calls, checking a paper calendar, and writing down patient details. During peak hours, calls go unanswered. Patients get frustrated. The clinic loses revenue.

Existing solutions are either too expensive, too complex, or too generic. Enterprise dental software costs thousands per month. Generic booking tools like Booksy don't understand dental-specific workflows — dental charts, PESEL validation, multi-office scheduling, or SMS confirmations.

The clinic needed a system where patients book appointments online in under 2 minutes — no login required. Choose an office, pick a date and time, enter details, get an SMS confirmation. Done.

But that's just the patient-facing side. The admin panel needed to be a full practice management system: multi-office scheduling, patient records, dental charts, visit tracking, SMS management, file storage, and printable patient cards. All RODO-compliant.

Platform Features

What we built.

📅

Multi-Office Scheduling

FullCalendar with color-coded offices, drag-to-create slots, schedule templates, combined calendar view. Holiday blocking.

🦷

Anatomical Dental Chart

Interactive chart with PNG tooth images, FDI/Universal numbering, surface overlays (M/D/B/L/O), bridge arcs, adult + child modes. 35 procedure dictionary.

👥

Patient CRM

26-field patient records, PESEL checksum validation, searchable table, 3-tab detail drawer, duplicate detection + merge, medical history.

📱

Online Booking Widget

Multi-step wizard: office → date → slot → patient info → SMS confirmation. Under 2 minutes. No login required. Embeddable via <script> tag.

💬

SMS System

SMSAPI integration: auto-confirmation, cancellation, reminders. KPI stats dashboard, paginated logs, manual send dialog.

🖨️

Printable Patient Card

Print-optimized card: clinic header, personal/medical data, visit history, dental chart, RODO consent, signature area.

📂

File Management

Drag-and-drop file upload via Supabase Storage. Signed URLs, per-patient files tab, download and delete.

🔐

Multi-Tenant Architecture

Tenant → Office → Schedule/Patient hierarchy. Row-Level Security via Supabase. Role-based access: Owner, Dentist, Receptionist.

⚙️

Settings & Integrations

4-tab settings: Offices, General (brand color, logo), SMS (SMSAPI token + templates), Integrations (P1, ZUS, SMSAPI status).

Development Timeline

6 phases. 1 engineer. Full SaaS.

PHASE 1

Foundation & Multi-Tenant Core

Prisma schema (14 models, 4 enums, cascade deletes). Supabase Auth with middleware route protection. PESEL checksum validation. Multi-tenant React context. Admin sidebar layout. Public landing page + login.

PHASE 2

Schedule Management

Office CRUD. FullCalendar time grid with color-coded offices. Schedule template system (default slots → apply to date ranges). Drag-to-create, click-to-edit time slots. Combined multi-office calendar view.

PHASE 3

Public Booking Widget

Multi-step booking wizard with real-time availability. Patient self-booking with PESEL/phone/email entry. Instant booking confirmation. Under 2 minutes, no account required.

PHASE 4

Patient CRM

7 server actions for patient CRUD. Searchable data table with masked PESEL. 3-tab detail drawer (personal, medical, history). Duplicate detection with side-by-side merge UI. 26 patient model fields.

PHASE 5

Dental Chart & Visits

Anatomical dental chart with PNG tooth images, FDI↔Universal numbering, surface overlays, bridge arcs, adult + child modes. Visit editor with 3 tabs (chart + procedures + notes). 35 seeded dental procedures. Chart state carries over between visits.

PHASE 6

Files, SMS, Settings & Print

Patient file uploads via Supabase Storage with signed URLs. SMSAPI integration for confirmations, cancellations, reminders. 4-tab settings panel. Printable patient card with RODO consent and signature area.

The Product

See it in action.

Screenshot: Admin Dashboard

Screenshot: Dental Chart

Screenshot: Schedule Calendar

Screenshot: Patient Booking

Tech Stack

What's under the hood.

Next.js 16 React 19 TypeScript Prisma 7 Supabase Auth Supabase Storage PostgreSQL FullCalendar SMSAPI Zod shadcn/ui Radix UI Tailwind CSS 4 Vitest Vercel Web Push

FAQ

Frequently asked questions.

What is DentaBook?

DentaBook is a multi-tenant SaaS platform for dental clinics. It provides online patient booking (under 2 minutes, no login required), an anatomical dental chart with surface-level diagnostics, a patient CRM with 26-field records, SMS confirmations via SMSAPI, FullCalendar-based multi-office scheduling, file management via Supabase Storage, and printable patient cards. It's built with Next.js 16, Prisma 7, and Supabase.

What technology is DentaBook built with?

Next.js 16 with React 19 and TypeScript. Prisma 7 ORM with PostgreSQL (Supabase). Supabase Auth for multi-tenant authentication with Row-Level Security. FullCalendar for interactive scheduling. Zod for validation including Polish PESEL checksum. shadcn/ui with Radix for accessible components. SMSAPI for SMS. Vitest for testing. Tailwind CSS 4 for styling. Deployed on Vercel.

How does patient booking work?

Patients visit the clinic's DentaBook URL or use an embeddable booking widget. They choose an office, select a date and time slot from the real-time availability calendar, enter their personal details (including PESEL), and receive instant SMS confirmation. The entire process takes under 2 minutes with no login required. Clinics can embed the widget on their own website with a single <script> tag.

How does multi-tenant architecture work?

Each clinic is a "Tenant" that can manage multiple offices. Every data table includes a tenantId with Row-Level Security enforced at the Supabase level. The hierarchy is: Tenant → Office → Schedule/Patient. Three user roles control access: Owner (full control), Dentist (clinical data), and Receptionist (bookings and scheduling).

Need a platform like this?

We build multi-tenant SaaS platforms from scratch. One engineer. AI-augmented development. Healthcare, logistics, e-commerce — any industry.

Book a Free 30-min Call
All Case Studies Next: meet-r
Book a Free Consultation →