Kenda

OVERVIEW
I built Kenda as a B2B SaaS for medical clinics in Venezuela: shared scheduling, attendance tracking, and fewer no-shows. Clinics still run on WhatsApp threads and paper. Empty slots are lost revenue. I owned the product from multi-tenant Postgres through the Flutter Web PWA staff use every day.
The hard parts were booking without double-booking (atomic RPC with overlap constraints), role-based access for owners, admins, and doctors, and a public confirm flow at /confirm/:token so patients can confirm without an account. I added trial and paywall with server-side RLS guards, staff push via Edge Functions, and timezone-aware digests for morning briefings.
Flutter Web PWA on Vercel. Supabase for Postgres, Auth, Realtime, and Edge Functions. Riverpod and GoRouter on the client.
HOW IT'S BUILT
Flutter Web PWA with Riverpod and GoRouter. Supabase Postgres with multi-tenant RLS, book_appointment RPC, and subscription guards. Edge Functions for push dispatch and scheduled digests. FCM for web push. Public patient confirm route without auth.