N Nizar Djassim Software developer

Case study 02 / 02

Tymbo

Appointment booking for small service businesses, with their own website and booking page.

  • Web & app development
  • UI engineering & design systems
Type
Multi-tenant SaaS
Scope
Database to mobile app
Platform
Web + mobile app
Billing
Stripe subscriptions
Tymbo — landing page
Tymbo landing page: the headline “Your calendar fills itself.” beside a sample booking card with a service, a team member and a time picked.

What it does

I built Tymbo, an appointment-booking app for small service businesses such as barber shops, studios and coaches. Owners set up their team, services and working hours; customers pick a service, a person and a time.

  • Customers book a specific team member or “anyone available”, with or without an account.
  • Each business gets its own website and booking page, plus a QR code and an embeddable booking widget.
  • Owners manage staff, services, weekly hours, time off and appointments. Invited staff see their own schedule.
  • Free and paid plans, promo codes and a partner program with tracked commissions.
  • Available in English, German, Spanish and Arabic (right-to-left).

Worth mentioning

The database itself prevents double bookings.

A PostgreSQL constraint rejects overlapping appointments for the same person, even when two customers book at the same moment.

Emailed links wait for a real person.

They open a page where the person presses a button, so mail scanners that preload links cannot use up a confirmation or cancel a booking.

Subscription status comes only from Stripe webhooks.

Each one is processed once. Discount and commission rules live in the app's own database.

Tech stack

Frontend
Expo, React Native Web, Expo Router, TanStack Query, i18next, Astro
Backend
Node.js, Fastify, Zod, TypeScript
Database
PostgreSQL, Drizzle ORM
Mobile
Expo, React Native (same code as the web app)
Auth
Better Auth
Payments
Stripe Checkout, Billing and Tax

Infrastructure

Coolify on Hetzner
Builds each app from its own Dockerfile. The main branch deploys production, dev a test environment.
Object storage
S3-compatible storage holds uploaded logos and photos.
Brevo
Transactional email: booking confirmations, invitations, password resets.
Umami
Visitor statistics, loaded only after cookie consent.