The application keeps the client-side user experience simple and reactive while moving all data operations, validation parsing, and third-party API mutations into server-side actions. This design avoids heavy client bundles, hides private Appwrite master keys from the browser, and ensures that all patient and appointment state transitions are verified in an isolated server environment.
Controlled inputs, masked phone fields, custom select dropdowns, and shadcn/ui primitives.
Server actions (`appointment.actions.ts`, `patient.actions.ts`) executing privileged mutations.
Zod schemas enforcing strict types, email regex, E.164 phone formats, and consent flags.
Configures Appwrite Client, Databases, Users, Storage, and Messaging instances with project keys.
Centralized TypeScript interfaces defining Patient, Appointment, Doctor, and Form parameters ensuring end-to-end type parity.