Care Confirm
- Next.js
- React
- TypeScript
- Convex
- WorkOS AuthKit
- Tailwind CSS
- FullCalendar
- Turborepo

Health care appointment booking platform. Clinics, hospitals, and health teams get one booking link with live availability and automatic reminders, so patients book a real slot in seconds and staff stop chasing confirmations.
Challenge
Clinics and hospitals lose full days to phone tag and no-shows:
- Staff call patients one by one to confirm slots, burning hours every week
- Availability lives in someone's head, so double bookings and gaps are routine
- Empty chairs and rooms cost revenue that reminders could have saved
- Generic booking tools force clinics to change how they already work
Goal: One booking link per organization with live availability and reminders that go out on their own, with access gated by manual verification instead of a paywall.
Solution
Care Confirm is a Turborepo monorepo with two Next.js apps: apps/web for the booking platform and apps/status for the status page. The backend runs on Convex with WorkOS AuthKit for sign-in. Organizations register with their facility name, services, and availability. Our team verifies every registration by hand, usually within 24 hours, and the organization gets an email the moment it can take bookings. There is no pricing page and nothing to pay to start.
How access works
| Step | What happens |
|---|---|
| 1 | An organization registers in minutes with its facility name, services, and availability |
| 2 | Our team reviews every registration by hand, usually within 24 hours |
| 3 | The organization gets an email the moment it is verified and can invite patients to book |
Unverified accounts land on a verify-pending page until approval. No payment is needed at any step.
Admin dashboard
The dashboard is the home base: KPI cards, today's schedule, recent appointments, and recent activity at a glance. Staff see what needs attention the moment they sign in, without digging through menus.

Booking calendar
FullCalendar powers the booking calendar with day, week, and month views. Availability comes from the services and working hours the organization sets once, so patients only ever see slots the clinic can keep.

Appointment kanban
Appointments move across a kanban board from booked to confirmed to completed. Drag-and-drop status changes keep the whole team in sync on where every booking stands.

Services and availability
Each organization defines its services, durations, and working hours in one place. Public booking pages at /book/[business-name] render live services and real slots from this data, so there is a single source of truth.

Client management
Client records, booking history, and contact details live together. Staff can look up a patient, see past and upcoming appointments, and follow up without switching tools.

Reminders and notifications
Confirmations and nudges go out automatically to cut no-shows. The notifications center keeps a record of what was sent, so staff always know which patients have been reminded.

Organization settings
Facility profile, team roles, and preferences are managed under settings. Role-based access covers business owners, staff, and clients, so each role only sees what it needs.

Tech stack
| Layer | Technology |
|---|---|
| Framework | Next.js 16, React 19, TypeScript |
| Backend | Convex (database, real-time sync) |
| Auth | WorkOS AuthKit |
| Scheduling UI | FullCalendar, TanStack Table, Recharts |
| Styling | Tailwind CSS v4, Radix UI, shadcn |
| Motion | Framer Motion, GSAP, Lenis |
| Monorepo | Turborepo, pnpm |
Links
Live at careconfirm.medic.hk. Built by veikeAgency.

