Sky Dental

Every day at the clinic, on one platform

Patients, appointments, invoicing, staff and inventory in one place. Built for single practices and multi-branch groups alike.

  • Product Design
  • Full-Stack Development
  • Multi-Tenant SaaS
  • React
  • NestJS
  • Keycloak
The Sky Dental practice management platform
Industry
Dental healthcare
Engagement
Product design and full-stack development
Platform
Web, works in any browser
Stack
React · NestJS · MongoDB · Keycloak · KrakenD

Project summary

Everything a clinic does in a day, finally in one calm place.

Sky Dental is an all-in-one dental practice management solution designed to streamline every aspect of a clinic’s operations. With 40 backend modules and 48 frontend pages, it supports clinical workflows, administrative tasks, HR management and business operations from one platform.

Sky Dental began as Sky Lab’s own product, not a brief from a client. We designed and built the platform first, then brought it to a dental clinic — which now runs its day on it, sets the priorities for what gets built next out of real use rather than a specification, and sells the platform on to other practices. Sky Lab continues the development, and the people who will use the next module are the ones who tested the last one.

Client summary

About Sky Dental

40
Backend modules covering clinical, admin, HR and finance
48
Frontend pages across six role-specific dashboards
6
Feature areas that replace the spreadsheets and paper
1 day
Before every visit, an automatic WhatsApp reminder

Client goals

What a clinic needed from the platform

  • One patient record, tooth by tooth

    Profiles, medical history, files and an interactive tooth chart carrying the state of every tooth.

  • Calendars that run themselves

    By doctor and by equipment, with reminders going out without the front desk picking up the phone.

  • Invoices straight from the appointment

    Itemized by service and tooth, with VAT and discounts, flowing into payroll and the summary report.

  • Many clinics, zero shared data

    Single practices and multi-branch groups side by side, with nothing shared between them.

  • Enterprise-grade access control

    Six roles, secure single sign-on, and permissions that are easy to read and change.

The challenge

Many clinics on one platform, each with its own private space

Every clinic gets its own sealed space on the same platform: patients, schedules and finances never cross between practices, even inside a multi-branch group. Who can see and do what is decided in one place, so an admin, a doctor and a receptionist each open the platform and see exactly their part of the day.

What made that hard was never the feature list. Patient records are about as sensitive as data gets, so one clinic's must stay unreachable from another's rather than merely filtered out of the view. Six roles — admin, doctor, manager, HR, marketing and storage — each need a different cut of the same day, on screens busy enough that a receptionist cannot go looking for anything. And the platform runs with an Armenian and English interface, so every one of those screens had to work in both.

What staff see

React + Vite

Clear dashboards for admins, doctors, managers, HR, marketing and storage.

Security

KrakenD + Keycloak

One secure front door: single sign-on, two-factor login, and every permission checked before a request goes further.

Behind the scenes

NestJS + MongoDB

Each clinic’s data stored separately, with mail, logging and the core platform running as independent services.

Our contribution

The six feature areas that replaced the spreadsheets

  • Patient records & tooth charting

    A searchable patient directory with full profiles and an interactive tooth chart carrying the state of every tooth and its notes. Each profile holds medical history, attached files, tooth-service history and the assigned doctor, with advanced search surfacing visit and spending analytics.

  • Treatment plans

    Built from multiphase service templates, plans span multiple appointments, track their own status — active, completed or cancelled — and recalculate their financial total as they go.

  • Scheduling & automatic reminders

    Personal and clinic-wide calendars, filtered by doctor or by equipment, with every appointment tracking its status from pending through confirmed, completed or cancelled. Every day the platform sends a WhatsApp and email reminder to everyone booked for the next day; rescheduling updates the reminder, and a tomorrow’s-appointments screen tracks who has confirmed.

  • Invoicing & reporting

    Invoices itemized by service and by tooth, with VAT, discounts and totals, generated from an appointment or by hand. The same ledger carries payroll, doctor bonuses and cash flow. The summary report — by service and by doctor, payments taken and debt outstanding — covers multiple branches under one organization and exports to Excel.

  • Staff & HR

    Leave management end to end — staff request time off, an HR manager approves or rejects it — with payroll expenses totalled by month, and leave reports and analytics over the whole clinic behind them.

  • Inventory & storage

    Supplies tracked by quantity, with low-stock alerting before a material runs out, resources assigned to the doctor using them, and usage history and analytics across the lot. Purchase orders and delivery tracking cover restocking, and equipment is inventoried alongside the consumables.

01 · Patient records

Interactive tooth charting and treatment plans

  • Tooth charting
  • Multi-phase plans
  • Medical history
A patient's tooth chart with colour-coded teeth and a list of the marked ones.

02 · Scheduling

Calendars by doctor and by equipment, with automatic reminders

  • WhatsApp Business
  • Email
  • Status tracking
The reminders list with patient name, visit time and confirmation buttons.

03 · Invoicing & reporting

Itemized invoicing through to the summary report

  • VAT & discounts
  • Payroll
  • Excel export
An invoice page with the service breakdown, tooth numbers and the total.

Assisted professional Vibe Coding

How one senior engineer shipped 40 modules

  • AI drafts the repetitive layers

    Forms, lists and Armenian translations were drafted by AI, then reviewed by the engineer.

  • The engineer owns the architecture

    Data separation between clinics, permissions, invoice calculations and reminder timing were designed and written by hand.

  • Every line reviewed and tested

    AI output is a draft, not a commit. Tests first, then review, then merge.

  • Weekly demos with the clinic

    Direct line to the developer. Front-desk staff and doctors saw and tested each module as it landed.

Benefits for the business

What changed at the clinic

  • The front desk stopped making reminder calls

    Every appointment schedules its own reminder: WhatsApp and email go out the day before, and the confirmation comes back into the same list the receptionist already works from. Nobody has to phone round the next day’s patients.

  • Doctors see the whole mouth, and the whole history

    The tooth chart, the multi-phase treatment plan and the medical history are one record on one screen, so a doctor opens one patient instead of checking three places for the same case.

  • Owners read one report across every branch

    Accounting, the front desk and inventory are one system instead of three, so a month closes from a single ledger — per branch or across the whole group, and exported to Excel when the accountant asks for it.

Results

What the partnership delivered

  • A multi-tenant SaaS with 40 backend modules and 48 pages, live for single practices and multi-branch groups.

  • Automatic WhatsApp and email reminders the day before every visit, tied to the booking.

  • Invoicing, payroll and cash flow in one ledger, reported per branch and exported to Excel.

  • From first commit to a production environment in under four months, now running for a dental clinic with nightly offsite backups of its database.

Technologies used

  • React + Vite
  • Material UI
  • NestJS
  • MongoDB
  • Keycloak
  • KrakenD
  • Docker

Let’s begin our journey