A skincare and beauty salon in Serbia
Klijentli: a multi-tenant SaaS for managing beauty and skincare clients, running on Cloudflare's edge
Lizzard Solutions built Klijentli for a skincare and beauty salon in Serbia: a multi-tenant SaaS with client records, treatments, photos, appointments, reports and subscription billing, all on Cloudflare Workers, D1 and R2.
The problem
Skincare professionals have to keep client profiles, skin assessments, allergies and medications, treatment history and before/after photos in one place, often across several locations and staff members.
The first version, a prototype from August 2025, was a local Node app installed on Windows. It couldn't scale to multiple salons or bill them.
Our solution
We rebuilt it from scratch as a multi-tenant SaaS:
- React + TypeScript frontend on Cloudflare Pages
- JavaScript API on Cloudflare Workers
- Cloudflare D1 (SQLite) database with 15+ versioned migrations
- R2 storage for photos and profile pictures
- Company and location tenancy with roles and invitations
- Subscription billing through Polar.sh, with a Paddle integration also in the code
**Public pricing:** Starter $49/month, Professional $99/month, Enterprise custom. 14-day free trial, no credit card required, and a 20% discount for annual subscriptions on request.

How it works
1. Client profiles with skin type, concerns, medical history, allergies and medications.
2. Treatment sessions and a treatment-type catalog.
3. Photo gallery with metadata and cropping, stored in R2.
4. Appointment calendar (FullCalendar), plus a dashboard and reports with charts (Recharts).
5. Multiple locations, team invitations, standardized roles and an admin panel.
6. Email verification, password reset and transactional email (React Email).
7. Billing and invoices with Polar/Paddle webhooks, plus public landing, pricing, help, docs, status, security and legal pages, in English and Serbian.

Tech stack
- React
- TypeScript
- Tailwind CSS
- React Query
- React Hook Form
- FullCalendar
- Recharts
- Cloudflare Workers
- Cloudflare Pages
- Cloudflare D1
- Cloudflare R2
- JWT + bcrypt auth
- React Email
- Polar.sh
- Paddle
- Microsoft Clarity
- Google Tag Manager
- Turborepo monorepo
- GitHub Actions (staging: D1 migrations + Worker + Pages)
Results
1. In production on Cloudflare.
2. 91 commits, 17 D1 migrations and a CI staging pipeline.