Full-stack· Guided build· Built· Nov – Dec 2025
DentCare
A dental clinic app with appointment booking, email confirmations, an admin dashboard and a voice AI assistant.
Overview
A guided build I did to learn Next.js server actions, Prisma and TanStack Query. Patients book appointments with dentists, get a confirmation email, and on a paid plan can talk to a voice assistant. An admin manages doctors and appointments.
Architecture / how it works
- Booked slots are checked against appointments with status CONFIRMED or COMPLETED, so the same slot can't be booked twice.
- The admin page is gated by comparing the signed-in email to
ADMIN_EMAILin a server component. - The confirmation email is a React Email template sent through Resend.
- The voice assistant (Vapi) only shows up for users on a paid Clerk plan.
Tech stack
Next.jsTypeScriptPostgreSQLPrismaClerkVapiResendTanStack Query