JRP logo
SaaSFullstackMulti-TenantWhatsApp Automation

One command. A whole fitness studio business exists.

Provisioning a new studio on DigiFitss takes a single command — its own subdomain, its own isolated MySQL database, CRM, class bookings, and automatic WhatsApp confirmations. Not a tenant_id column. A database.

The Problem

Fitness studios in Indonesia run on WhatsApp chats and spreadsheets. Leads get lost, class bookings get double-confirmed or not confirmed at all, and every studio wants its own branded system — but none can afford custom software. Shared-database SaaS isn't the answer either: one leaky query away from exposing every studio's member data.

The Solution

A multi-tenant SaaS built on true isolation. One artisan command provisions an entire studio — database created, migrations run, subdomain live, admin ready. Each studio operates on its own MySQL database with its own CRM, scheduling, and automated member communication. The stack runs itself; the studio just runs classes.

What I Built

  • One-command tenant provisioning — php artisan tenants:create spins up the database, runs migrations, and readies the admin
  • Database-per-tenant isolation — every studio's data lives in its own MySQL database, on its own subdomain
  • CRM pipeline for leads and membership management
  • Class scheduling with an embeddable booking widget for the studio's own website
  • Automatic WhatsApp booking confirmations — no admin typing "confirmed" ever again
  • Per-studio dashboards: leads this week, revenue this month, active members, classes today
  • Laravel multi-tenant backend

The Result

Run the studio. The stack runs itself. New studios onboard in minutes, not weeks — with isolation most SaaS platforms can't offer.