Back to Projects
Next.jsTypeScriptSSESupabaseshadcn/ui

Dynta

Dental clinic management platform with end-to-end patient workflows.

View Live
The Problem

Dental clinics run on paper, memory, and WhatsApp.

Most Indonesian dental clinics still track patient records on physical cards, draw odontograms by hand, manage inventory on spreadsheets, and coordinate between doctor and admin through verbal communication. There is no source of truth, no audit trail, and no way to know the health of the business at a glance. Every missed record is a liability. Every manual process is a bottleneck.

Context

Built solo as a multi-tenant SaaS platform using vibe engineering — AI-assisted development to ship production-grade features faster while maintaining full ownership of architecture decisions.

Tech Stack
Next.jsApp Router — SSR for patient-facing pages, client components for interactive UI
TypeScriptStrict typing across the full stack — critical for medical data integrity
SupabasePostgres + Row Level Security for multi-tenant data isolation
SSEReal-time updates between doctor and admin workflows
shadcn/uiComponent system — consistent, accessible, fully customizable
Architecture

Click any node to see details

Key Decisions
01

Built the odontogram from scratch

An odontogram is a dental chart mapping all 32 teeth with condition annotations — decay, fillings, extractions, crowns. No existing library handled the Indonesian dental notation standard correctly, and generic SVG libraries would have required as much work as building from scratch. Building a custom SVG-based interactive odontogram gave full control over interaction model, visual fidelity, and extensibility for future condition types.

02

Supabase Row Level Security for multi-tenancy

With patient health data, multi-tenant isolation is not optional — it is a legal and ethical requirement. Supabase's Row Level Security enforces data boundaries at the database level, not just the application layer. Even if a bug exists in the application code, one clinic cannot accidentally access another's patient records. Defense in depth for sensitive data.

03

Multi-tenant architecture from ground up

Same principle as QueueMaster — multi-tenancy shapes every schema, every query, every API surface. Each clinic operates in complete isolation. One platform, multiple independent clinics, zero cross-contamination of data.

Lessons Learned
  • When no existing library solves your domain problem correctly, building from scratch is not over-engineering — it is the only path to a correct solution.
  • For sensitive data (medical, financial), enforce isolation at the database layer, not just the application layer. RLS is not optional.
  • Vibe engineering with a clear architecture vision produces results faster than traditional development — the key is knowing what decisions to make yourself and what to delegate to AI.
Back to Projects
AI · Trained on Dimas's profile