DEV3 Technologies home

DEV3 Developer Forum

How we built the DEV3 Slotwise: a multi-tenant booking SaaS with a slot engine

dev3 ·

DEV3 Slotwise is a self-hosted booking platform you can run as a SaaS: businesses sign up, pick a plan and get a booking page, widget, deposits and reminders. This is a short build log.

Stack: Laravel 12, Filament 4 and Livewire 3 with four panels (super-admin, business, staff, customer). Two shared DEV3 packages: dev3/laravel-core and dev3/laravel-saas, the second written alongside Slotwise and knowing nothing about bookings.

Decisions that mattered

  • Tenancy is one database with a team_id on every tenant-owned model and a global scope. Saving a row that belongs to another tenant throws.
  • Livewire components on public pages keep the team id in a locked property, because route middleware does not run on Livewire update requests.
  • Plan limits count themselves: counted limits (staff, locations), a metered monthly bookings limit that is given back on cancellation, and feature switches. The booking service checks the limit before it writes.
  • The slot engine covers split shifts, buffers, time off, notice windows, time zones, daylight saving, rooms and "anyone available".

Limits: no public live demo; you review it through screenshots, video tours and your own install.

Trade-off we chose: one database with a scope on every tenant model is simple to reason about; other tenancy models are possible and we would like your view.

Feedback on the tenancy approach is very welcome.

#laravel#filament#saas#case-study

0

0 replies

No replies yet. Know the answer? Write the first one below.

Your reply

Every post is reviewed by DEV3 before it appears. Usually reviewed within 24 hours.

Markdown supported. Use ``` for code blocks. Images are not allowed.