Project Overview
In an age where convenience is everything, PerfektAuto reimagines the car wash experience by bringing premium cleaning services to your driveway—or offering a smooth, fully digital journey to fixed-location washes. But what seems simple on the surface is powered by a deeply considered, scalable tech stack that blends flexibility, automation, and operational intelligence, complete with CRM integrations, asynchronous workflows, and real-time notifications.
From Booking to Clean: A Seamless Customer Experience
PerfektAuto offers two core service modes:
- Fixed-location washes at branded stations
- Mobile car washes, where a washer comes to the customer’s chosen location
The app provides a frictionless booking experience:
- Select your wash type
- Choose a location (autocomplete or interactive map)
- Add optional services
- Pick a time slot (based on dynamic availability)
- Complete payment (mandatory for mobile)
- Get notifications, both push and email about your wash
Customers can manage saved vehicles, receive notifications, apply referral codes, and view past or upcoming washes. Behind the scenes, intelligent logic validates service areas, assigns the best available washer, and dynamically adapts the booking experience.
The Stack: React Native + Directus
Frontend
React Native We chose React Native to support a unified codebase for iOS and Android, paired with a custom design system (based on Prime). The app integrates with:
- Google Places and Maps APIs for address selection and visualization
- Stripe for payments
- Push and email services for real-time updates
- Dynamic content rendering powered by Directus
Backend
Directus Directus serves as both the content hub and operational engine. It acts as a headless CMS and admin tool, powering:
- Wash types, extras, media
- Vehicle and customer management
- Booking logic and status workflows
- Mobile washer schedules and exceptions
- Franchise-level service area configuration (zip codes)
- Mobile unit logic including time buffers and zip code coverage
- CRM-linked customer profiles and service history
This setup enables fast iteration for the dev team and real-time configurability for admins—without having to touch code.
The Logic That Powers Mobile Washes
One of the core differentiators of PerfektAuto is its intelligent task dispatch system, designed specifically for mobile wash scalability.
Each mobile washer is treated as a separate "location" with its own:
- Zip code coverage (primary area)
- Working hours and exception dates
- Washer availability
Franchises define regional coverage zones, and the system ensures that only one franchise operates per region.
When a customer enters an address
- The system validates it in real time based on zip code coverage
- If the address is out of service range, a popup appears and the app redirects the user to the closest available region
- Time slots are generated dynamically, factoring in washer schedules and an invisible time buffer
- All of this is powered by asynchronous workflows to keep operations smooth even during peak load
The buffer is dynamic (based on service logic), but always rounded up to 30-minute slots for consistency in scheduling. Customers never see this buffer, but it prevents overlap between appointments.
Intelligent Assignment: Least-Occupied Logic
Booking assignment is handled by our custom “least occupied agent” logic. For each franchise, the system:
- Calculates current workload for each washer
- Picks the washer with the least assigned time that week
- Ignores primary/secondary location preference (for now)
This ensures fair workload distribution and maximum utilization, with future plans to weight assignments by location preference.
Admin Simplicity with Directus
Directus allows non-technical team members to:
- Add new wash types or extras
- Manage zip code territories
- Set washer working hours and blackout dates
- View booking history and manage status
- Control coupon and referral programs
- Review customer CRM data and historical service logs
Collections are structured cleanly around core entities: Bookings, Washers, Vehicles, Locations, Services, and Franchises. The API layer is exposed to the mobile app and washer app, keeping everything in sync.
Washer App: Lightweight Operational Companion (In Development)
We’re currently building a lightweight Washer App to support on-the-ground operations. It allows washers to:
- Log in via email + password
- View assigned washes
- Change wash status (En Route → Started → Completed)
- Take before/after photos
- Send predefined messages to users (e.g., “I’m running late”)
Photos are uploaded directly to the backend and linked to the corresponding wash. The app runs on the same API and permission structure as the main app, tailored for speed and ease of use.
Built for Scale: Franchises, Regions, and Growth
PerfektAuto’s architecture was designed with scale in mind. By decoupling business logic from hardcoded components, we can:
- Expand across regions with unique zip code and service logic
- Support multiple franchises with separate washer fleets
- Dynamically adjust offerings per market (e.g., different extras or pricing)
- Roll out new features quickly without disrupting core workflows
Everything is managed centrally through Directus, making onboarding a new region or franchise a low-friction process.
What’s Next?
As we expand, we're exploring features like:
- Washer-initiated price/time adjustment (if vehicle condition is poor)
- Customer-side photo review and washer rating
- Advanced dispatch logic based on historical performance or region familiarity
- Load balancing across franchises
PerfektAuto isn’t just a car wash app—it’s a modular, franchise-ready platform designed to evolve with scale, precision, and customer-centricity.