← Back to Work
Case Study · AWS Serverless + Flutter

PawPointPro — Multi-Tenant SaaS on AWS with a Flutter App

A multi-tenant SaaS for independent grooming salons: CRM, scheduling, checkout, payments, staff roles, and a public website per salon, on AWS Lambda and PostgreSQL.

Role: architect and sole engineer. Focus: tenant isolation, serverless deployment, role-based access, and a self-serve publishing pipeline.

Model
Multi-tenant SaaS
Back end
AWS Lambda (SAM)
Database
PostgreSQL
Mobile
Flutter

Problem

Independent salons were stitching together five tools for client records, booking, checkout, payments, staff access, and a website. They needed one product, and each salon's data had to stay isolated.

What I built

Every salon signs up as its own tenant and gets an isolated workspace on its own subdomain, for example pawsh-a1b2.pawpointpro.com. That subdomain serves the owner, admin, and groomer dashboard, the salon's public storefront, and optional online booking.

It all runs from one Node and TypeScript codebase on one shared PostgreSQL database with per-tenant row isolation. A self-serve website studio publishes branding and content changes straight to each tenant's live storefront.

Result

A live product covering the full salon workflow: sign-in, scheduling, check-in to checkout, invoicing, staff permissions, and a published booking site. Multi-tenancy and role-based access were designed in from the start, which is the part of SaaS that is hardest to retrofit.

Screenshots

Stage 1

Salon Sign-In & Daily Scheduling

Branded, tenant-scoped workspace sign-in, followed by the groomer's day-view schedule with booked/open-slot capacity and revenue forecast, plus a full appointment ticket with a five-step status stepper and intake-form enforcement.

Stage 2

Salon Configuration & Team Access

Central settings hub spanning salon profile, services, team, and billing, plus role-based staff management with per-person groomer flags and access levels.

Stage 3

Website Studio → Published Storefront

Self-serve branding editor with hero styles, brand color swatches, and logo upload behind a draft/preview/publish flow, publishing directly to the tenant's live booking site.

Stack

Dashboard: Node, TypeScript, Express, server-rendered Nunjucks, HTMX, Alpine. API: Node, Express, PostgreSQL via tenant-scoped repositories. Infrastructure: AWS Lambda (SAM), CloudFront subdomain routing, S3, Cognito, SES and SNS, Twilio SMS. Mobile: Flutter kiosk and groomer app.

pawpointpro.com