Dr. Jaime Carvalho website
Professional website with a custom admin panel to modernize how a doctor connects with patients.
ReactTypeScriptTanStack StartTailwind CSSshadcn/uiSupabaseVercel
The problem
Dr. Jaime Carvalho practices family medicine, nutrology and psychiatry, and wanted to modernize his patient care: a single place where patients get to know the doctor, understand his specialties, find the clinics where he works and book an appointment. He also needed to keep all of it up to date on his own, without relying on a developer to change a line of text or a photo.
The solution
An application with two sides:
- Public website: a single page with a hero section, the doctor’s story as a timeline, credentials, specialties, content and clinics. Booking happens over WhatsApp, the channel patients already use.
- Admin panel (
/admin): every piece of content on the site can be edited there, including text, photos, and the order and number of items.
Technical decisions
- React 19 + TanStack Start with SSR on Vite, file-based routing, Tailwind CSS 4 and shadcn/ui.
- Supabase for the Postgres database, authentication and image storage.
- Server-side security: the session lives in an httpOnly cookie (not in
localStorage), and writes are only allowed for an allowlist of admins through Row Level Security. Even if someone creates an account, they can’t edit anything. - Hosted on Vercel with a custom domain. Netlify vs. Vercel and Supabase vs. Neon were chosen by comparing cost, plan limits and commercial use, and the reasoning is recorded in the project documentation.
Result
The site is live at drjaimecarvalho.com.br and the doctor updates the content himself through the admin panel. It was my first project delivered end to end for a real client: requirements, architecture, development, infrastructure and launch.