Overview
WashFlow is a multi-tenant CRM built specifically for car wash businesses. The scheduling engine uses row-level locking to prevent double-bookings and tracks workforce capacity in real time. Staff manage orders through a visual schedule grid or a step-by-step wizard, while a client and vehicle registry keeps full service history. Granular RBAC with 47 permissions lets owners define exactly what each role can access. Customers can book online through a public booking page or an embeddable widget. The platform handles the full subscription lifecycle with Paddle billing — from a 30-day free trial through tiered plans with add-on resource packs.
Who It's For
Car wash businesses of all sizes — from single-location operators to multi-branch chains looking for a centralized management platform with online booking and subscription billing.
Launched
2024-05
Screenshots

Orders — Schedule View
A real-time scheduling board that shows all wash posts and their bookings throughout the day. Staff can see at a glance which posts are free, occupied, or upcoming — making it easy to plan walk-ins and avoid double-bookings.
- Time grid with 30-minute slots across all wash posts
- Color-coded cells: free, booked, in-progress, completed
- Filter by branch and specific wash post
- Date picker for viewing past and future schedules
- Switch between Orders list and Schedule views

Create Order — Step-by-Step Wizard
A guided multi-step flow for creating new orders. The wizard walks staff through selecting a branch, services, time slot, client, vehicle, and worker — then displays a clear summary before confirming the booking.
- 7-step wizard: Branch → Services → Time Slot → Client → Vehicle → Worker → Review
- Review & Confirm screen shows all selected details at a glance
- Total amount calculated automatically from selected services
- Notes field for special instructions or damage notes
- Back navigation to edit any previous step

Client Management
A searchable database of all clients with contact details and linked vehicles. Staff can quickly find a returning customer, see their history, and create new client profiles on the spot.
- Search clients by name, phone, or email
- Vehicle count per client for quick reference
- Creation date tracking for customer retention analytics
- Paginated table with 20 entries per page
- One-click client creation from the top bar

Vehicle Registry
Every vehicle that visits the car wash is registered with its make, model, license plate, and linked owner. This lets the system auto-fill vehicle details during order creation and track service history per car.
- Vehicle details: make/model, license plate, year, linked client
- Active/inactive status toggle for filtering
- Quick add from the vehicle list or during order creation
- Full vehicle history tied to the owner's account
- Pagination and sorting for large fleets

Team Management
Manage all staff members — operators, receptionists, managers, and admins — with their contact info, assigned role, and branch. Each user's access is determined by their role's permission set.
- Role-based assignment: Admin, Manager, Operator, Receptionist
- Branch assignment for multi-location businesses
- Contact details: email and phone per user
- Quick edit and delete actions per row
- Invite new team members with one click

Roles & Permissions
Granular access control with per-module CRUD permissions. Business owners define exactly what each role can see and do — from viewing analytics to editing orders or managing payments.
- Modules: Analytics, Audit, Branches, Clients, Orders, Payments, Roles, Scheduling
- CRUD toggles per module: Create, View, Edit, Delete
- Permission counter showing selected out of total
- Custom role creation with any permission combination
- Changes apply instantly across all users with that role
The Challenge
Most car wash businesses rely on paper logs or generic POS systems that don't handle time-slot scheduling, multi-post capacity, or workforce management. Owners running multiple branches have no unified view of operations, and there's no way for customers to book online. Building a multi-tenant SaaS from scratch with proper data isolation, subscription billing, and real-time updates is a significant engineering effort.
Our Solution
We built a purpose-built scheduling engine with Serializable transactions and SELECT FOR UPDATE locking — one slot, one car, zero conflicts. The multi-tenancy layer uses Prisma Client Extensions to auto-inject tenant context into every query, ensuring complete data isolation. A domain event system (EventEmitter2) drives audit logging, WebSocket broadcasts, and background jobs via BullMQ. The public booking API supports both slug-based and widget-based flows with rate limiting and idempotent mutations.
Key Features
Scheduling Engine
Visual schedule grid with 30-minute slots, row-level locking to prevent double-bookings, and workforce capacity tracking across wash posts
Client & Vehicle Registry
Full CRM with searchable client database, linked vehicles with service history, and soft-delete with restore
Role-Based Access Control
47 granular permissions across 14 modules — define custom roles with per-module CRUD access for every team member
Public Online Booking
Customer-facing booking page and embeddable widget with real-time availability, rate limiting, and idempotent slot reservation