Cleaning Services
St. Johns Clean: Booking Portal and Admin Dashboard for a Cleaning Broker
Built a dual-app cleaning broker platform with a public booking portal and a private admin dashboard. Flat-rate pricing engine, service area pages, and full cleaner management from one codebase.
6 zones
Service Area Pages
Under 30s
Booking-to-Quote
12 modules
Admin Functions
4.9 stars
Satisfaction Rate
The Challenge
St. Johns Clean operates as a cleaning broker in St. Johns County, Florida — they connect homeowners with vetted, insured, and background-checked cleaning professionals. The business model requires two completely different user experiences: a public-facing booking site for customers, and an operations dashboard for managing cleaners, assignments, and scheduling. Most off-the-shelf solutions handle one or the other. They needed both.
The Booking Portal
The customer-facing site is built around one goal: get a quote in under 30 seconds. No account creation, no phone tag, no “we’ll get back to you” forms.
- Flat-rate pricing engine calculated by bedroom and bathroom count — customers see exact prices immediately:
- Maid Service: $130–$240
- Deep Cleaning: $275–$350
- Move-In/Out: $250–$400
- Airbnb/VRBO Turnover: $125–$200
- Service type selection with clear scope descriptions so customers know exactly what they’re booking
- Recurring plan discounts — up to 25% savings for weekly or biweekly schedules
- 100% satisfaction guarantee displayed prominently to reduce booking hesitation
The Admin Dashboard
The private operations dashboard is where the business actually runs. It’s a separate application with its own authentication, designed for the operations team:
- Cleaner management — onboarding, availability tracking, background check status, skill ratings
- Assignment engine — match cleaners to jobs based on location, availability, and service type
- Schedule overview — calendar view of all upcoming jobs with drag-and-drop rescheduling
- Customer history — booking records, preferences, notes, and satisfaction scores
- Financial tracking — revenue per cleaner, payout calculations, recurring vs. one-time breakdowns
- Service area management — define and adjust coverage zones without code changes
The Dual-App Architecture
Both applications share a single codebase and database but present completely different interfaces:
- Public site: Astro SSR for fast, SEO-friendly pages that rank in local search
- Admin dashboard: Protected routes with session-based auth, real-time data views, and CRUD operations
- Shared database: MariaDB with clean separation between customer-facing data and operational data
- Single deployment: One build, one server, two apps — no microservice complexity for a business that doesn’t need it
The Stack
- Astro with TypeScript for both the public site and admin interface
- Tailwind CSS for consistent styling across both apps
- MariaDB for reliable relational data (bookings, cleaners, schedules, payments)
- CloudPanel on Vultr for hosting with nginx reverse proxy
Service Area SEO
Each of the six service zones gets its own dedicated page with locally targeted content:
- St. Johns County (hub page)
- Ponte Vedra Beach
- Nocatee
- World Golf Village
- Fruit Cove
- Julington Creek
Every area page includes local landmarks, neighborhood references, and service-specific content — not just the city name swapped into a template. Schema markup with LocalBusiness and Service types on every page.
Results
The platform handles the full lifecycle: a customer in Nocatee finds the site through local search, gets an instant flat-rate quote, books online, and the admin dashboard automatically routes the job to an available cleaner in that zone. No phone calls, no manual scheduling, no spreadsheets. The 4.9-star rating across 187 reviews reflects a booking experience that actually works end to end.
Want Results Like These?
Free site audit. No contracts. Results in 60 days or less.
Start Your ProjectOr call (954) 884-8892