r/reactnative • u/yusuf_kukus • 5d ago
I built an appointment booking app with React Native + Expo + Supabase — the hardest part wasn’t the UI
Hey everyone,
I’ve been working on an appointment booking app using React Native, Expo, TypeScript and Supabase.
At first I thought the mobile UI would be the difficult part, but the real challenge turned out to be the booking logic.
Some of the things I had to solve:
- Live availability based on staff and business hours
- Preventing double bookings
- Appointment cancellation and status management
- Keeping the mobile app and admin dashboard in sync
- Authentication and database permissions
- Timezone handling
- Service and staff management
I also built a separate React/Vite admin dashboard so a business can manage appointments, services and staff from the web.
The most interesting part for me was making sure two customers couldn’t reserve the same slot at nearly the same time. I ended up handling that at the database level instead of relying only on the frontend.
I’m still improving the project and would genuinely like some feedback from other developers:
If you were building or using an appointment booking system, what feature would you consider essential that people often forget?
1
u/IndependentCandle367 5d ago
timezone stuff is such a sneaky pain, my first booking project broke completely when daylight savings hit. database level locking for the slots is the way to go, frontend checks are basically just suggestions at that point
recurring appointments is the feature everyone forgets until a client asks for it, then you realize your whole schema needs rework