Lioris — Multi-Tenant SaaS Platform for Salon Chains & Spas
Lioris is a production-ready, multi-tenant SaaS platform built for salon chains, spa franchises, and independent stylists. It replaces the fragmented mix of tools most salons juggle — separate apps for booking, payroll, inventory, and customer management — with a single unified system.
What it does:
Lioris gives salon owners a complete operations hub: a live dashboard for revenue and performance, an interactive appointment calendar with real-time availability and waitlist auto-booking, staff management with attendance tracking and automated payroll/commission calculation, a built-in CRM with a loyalty points program, inventory and vendor management with low-stock alerts, and tax-compliant billing with dual payment gateway support (Stripe for global, Razorpay for India).
How it's built:
The platform runs on Next.js 15 and React 19, with Drizzle ORM on Neon PostgreSQL for type-safe data handling, NextAuth v5 for authentication, Upstash Redis for caching and rate-limiting, and Ingest for background job processing (reminders, payroll runs, low-stock alerts, recurring bookings).
Approach
1. Architecture: Designed as a multi-tenant SaaS from day one, with per-tenant data isolation handled at the schema level rather than row-level — a more robust separation that reduces the risk of cross-tenant data leaks as the platform scales.
2. Stack: Built on Next.js 15's App Router for a full-stack, server-first architecture, with Drizzle ORM providing type-safe SQL access to a serverless Neon PostgreSQL database.
3. Auth: Implemented with NextAuth v5, using a credentials provider combined with tenant ID injection via middleware — so every request is automatically scoped to the correct salon.
4. Payments: Integrated dual payment gateways — Stripe for global transactions and Razorpay for India — to support localized billing depending on where a salon operates.
5. Performance: Used Upstash Redis for caching and rate-limiting, keeping the platform responsive under load without adding heavy infrastructure overhead.
6. Background processing: Handled event-driven async jobs — appointment reminders, commission and payroll calculations, low-stock alerts — through Ingest, keeping these workflows decoupled from the main request/response cycle.
7. UI/UX: Styled with Tailwind CSS and shadcn/ui (built on Radix primitives), layered with subtle ambient visual effects to give the interface a polished, premium feel rather than a generic dashboard look.
8. Internationalization: Structured with an i18n directory from the start, so multi-language support can be added without reworking core architecture later.
Key technical decisions:
-True :multi-tenant isolation — schema-level tenant separation (not just row-level), so each salon's data stays fully isolated even on shared infrastructure
-Role-based access control — 5 roles (Owner, Manager, Receptionist, Stylist, Super Admin) governed by a 40+ permission matrix
-Feature-gated pricing — a plan-based engine that controls what each tenant can access, so salons only pay for what they use
-Full audit logging for compliance and history tracking across the platform
Outcome:
A fully scaffolded, deployable SaaS product — complete with a 14-table database schema, server actions and API routes for every core module, automated background jobs, testing setup, and production deployment configuration. Lioris can be launched either as hosted multi-tenant SaaS (one instance serving many salons) or self-hosted per salon chain.
2
69
Inventory & Procurement
Complete inventory management suite: a centralized dashboard showing stock levels across all products with automated low-stock alerts, a simple add-product form for setting stock, pricing, and reorder thresholds, a searchable product catalog for quick visibility into what's in stock or running low, and a procurement workflow for managing vendor purchase orders and tracking incoming stock — all in one system, preventing revenue loss from unexpected stockouts.
1
46
Settings/Theme Selection screen:
Customizable theme system with 9 curated color palettes — from Rose Gold to Midnight Glam — letting each salon match its brand personality. Settings also cover branches, team roles, services, integrations, and notifications in one place. A small but meaningful detail: white-label flexibility for a platform meant to serve many different salon brands.
2
48
Lioris — Multi-Tenant SaaS Platform for Salon Chains & Spas
1. Appointments (Calendar view) — Day/Week/Timeline calendar for managing stylist allocations with real-time slot availability
2.Appointments (Board view) — Drag-and-drop status board for updating appointment status visually