Ashish Kumar

Decoder Ashish

Ashish Kumar · Engineer

Project · Salon & Wellness Booking

Stylelands

Pilot

Stylelands lets users discover and book salons, spas and wellness services with a smooth, mobile-first booking experience.

Flutter MySQL Cloud Firestore Laravel
Stylelands Salon Booking Platform

01 · Overview

About the project

Stylelands is a salon and wellness discovery marketplace where users can find, compare and book appointments across salons, spas and wellness services. The product centers around a smooth mobile-first booking experience, pairing a Flutter consumer app with backend systems that manage listings, availability and reservations.

The platform connects service providers with customers through a unified booking pipeline, surfacing service catalogs, pricing and available time slots in a mobile experience optimized for quick browsing and frictionless checkout.

02 · Problem

What we set out to solve

Booking salon, spa and wellness appointments today still relies heavily on phone calls, walk-ins and fragmented Instagram or WhatsApp conversations. Customers lack a single place to discover nearby providers, compare services side-by-side and see honest availability before committing to a time.

Providers, meanwhile, struggle with manual scheduling, double-booked slots and inconsistent customer communication — especially for multi-service visits that need careful sequencing of staff and rooms.

03 · My Role

What I worked on

Full stack engineering across architecture, the Laravel backend APIs and the Flutter mobile client. I designed the provider listing and service catalog data models, the booking engine with availability lookup, Cloud Firestore-based live state for slot updates and the end-to-end booking flow in the Flutter application.

04 · Technologies

Stack and how each piece is used

Flutter Cross-platform mobile app for iOS and Android delivering discovery, service browsing, salon details and the mobile-first booking flow.
MySQL Relational persistence for salons, services, pricing, customer profiles, bookings and transactional appointment records.
Cloud Firestore NoSQL document store for realtime availability state, live slot updates and reactive UI sync on the mobile client.
Laravel Backend PHP framework handling REST APIs, authentication, Eloquent ORM, booking command logic and admin/provider endpoints.

05 · Architecture & Technical Approach

How the system is structured

Stylelands follows a layered REST-native architecture with the Laravel backend acting as the system of record for all booking, catalog and provider data exposed through authenticated APIs. MySQL holds transactional relational records for bookings, service catalogs, pricing and customer relationships, while Cloud Firestore mirrors availability state for live subscriptions on the Flutter client.

All mutation of availability and booking state goes through the Laravel backend to enforce business rules, concurrency constraints and role-based access. The Firestore layer is then updated as a derived read model, keeping the mobile user experience reactive without bypassing server-side validation or double-booking protections.

06 · Key Features

What the product delivers

  • Discovery of salons, spas and wellness service providers
  • Service catalog browsing with pricing and salon details
  • Mobile-first appointment booking with slot selection
  • Real-time availability updates synced to the mobile app
  • Unified booking experience across different wellness categories
  • Provider-side systems managing listings and schedules

07 · Engineering Challenges

Hard problems we had to solve

  • Realtime availability sync across MySQL bookings and Firestore live state without drift or race conditions
  • Mobile UX for marketplace discovery — browsing many salons and services quickly while keeping imagery and scrolling smooth
  • Booking concurrency for popular time slots, preventing double-bookings under simultaneous selections
  • Mobile performance for service lists with pricing, imagery and provider metadata on lower-end devices
  • Offline resilience in the booking flow so partial selections survive network drops in-store or on poor connectivity

08 · Solutions

How we addressed them

  • Clean architecture with clear command/query separation — all booking mutations flow through Laravel, Firestore is treated as a derived read side
  • Database transaction wrapping with locking for slot reservation, combined with short-lived optimistic holds on the client during checkout
  • Standardized Laravel authentication and authorization patterns protecting provider, admin and customer scopes
  • Flutter client optimizations with list pagination, image caching and lazy-loaded salon cards for smooth marketplace scrolling
  • Background-aware notification and sync patterns ensuring confirmations and reminders reach customers after successful booking

09 · Outcome

What was delivered

Built and shipped Stylelands as a complete salon and wellness booking marketplace with end-to-end discovery, catalog browsing and mobile-first appointment booking. The platform applies clean layering between Laravel transactional state, MySQL relational data and Firestore live availability, delivering a working product where customers and providers reliably connect over real services and timeslots.

10 · Lessons Learned

What I'd do differently next time

  • Booking flows in marketplaces need edge case handling from day one — add-on services, multi-staff sequencing, no-shows and cancellations are the real bulk of complexity.
  • Mobile-first UX and imagery performance are tightly coupled; marketplace catalogs only feel fast when list rendering, image caching and data pagination are engineered together.
  • Keeping a transactional system of record in MySQL and a live read model in Firestore requires explicit, testable synchronization rules — eventual consistency needs to be visible, not accidental.

Next

Want to see more, or build something similar?