Beauty booking marketplace
A beauty & wellness booking marketplace for Lithuania — geo-search salons and book.
Dev-storyChallenge
Booking a beauty service is about a salon near you, the right specialist and an open time — not a listing you buy online.
What we did
A Vue 3 (Composition API, Pinia for UI state) + webedge-db MVP for the beauty market: geo-search for salons, booking with specialist selection, reviews and ratings, pay-on-site (no online payments), and a partner dashboard plus admin.
Result
A working booking flow for the Lithuanian beauty market — find a salon by location, pick a specialist and time, and pay in person.
Dev-story article
Beauty booking marketplace: how the project was built
A beauty booking marketplace has one scarce resource: a named specialist's calendar. The hard part isn't listing salons — it's making an availability slot honest against one staff member's schedule, a salon's opening hours, several services stacked back-to-back, and the Europe/Vilnius timezone all at once. And because bookings are paid on-site rather than online, there's no payment step to paper over a mismatch: whatever price the catalogue shows has to be exactly what the client pays at the chair.
Sections
05
Modules
05
Stack
Vue 3 + webedge-db
Why the project exists
Booking a beauty service is about a salon near you, the right specialist and an open time — not a listing you buy online.
A beauty booking marketplace has one scarce resource: a named specialist's calendar. The hard part isn't listing salons — it's making an availability slot honest against one staff member's schedule, a salon's opening hours, several services stacked back-to-back, and the Europe/Vilnius timezone all at once. And because bookings are paid on-site rather than online, there's no payment step to paper over a mismatch: whatever price the catalogue shows has to be exactly what the client pays at the chair.
What was built
A Vue 3 (Composition API, Pinia for UI state) + webedge-db MVP for the beauty market: geo-search for salons, booking with specialist selection, reviews and ratings, pay-on-site (no online payments), and a partner dashboard plus admin.
BeautyMarket is a marketplace for Lithuania where clients geo-search salons on a map, open a salon page, choose specific services and a specialist, and book a time — as a guest or a registered user. Partners get a cabinet to run their salon (calendar, services, staff, opening hours, photos, per-service discounts, stats); an admin side oversees the platform. Reviews and ratings, favourites, and confirmation emails with .ics calendar attachments close the loop.
Main modules and user path
Slot engine that computes real availability from a chosen specialist's calendar, the salon's opening hours, and the summed duration of a multi-service booking, storing everything in UTC and rendering in Europe/Vilnius via Luxon
Single source of pricing truth: effective price (base minus a 1–90% per-service discount) is computed in one shared module so the booking mutation charges precisely what the strike-through catalogue shows — critical when payment happens on-site
Geo-search over a geospatial index with a Leaflet/OSM map, plus paginated catalogue search by service name, rating filter, sort, and a 'similar salons' feed by shared city and category
Guest booking with phone capture and client confirmation email, alongside registered accounts with roles read server-side; partner cabinet covers services, staff, photo uploads, opening hours, and special-offer discounts
Per-salon SEO via edge Pages Functions that inject real meta tags and a dynamic sitemap at the CDN, so each salon URL is indexable without shipping server-side rendering
Architecture and technology decisions
Built with Vue 3, webedge-db, Geosearch.
Vue 3 with script-setup and Composition API, Vite, Vue Router and Pinia for UI state, vue-i18n for LT/EN/RU; all server logic lives in the reactive backend with a geospatial index, cron jobs, and email-plus-OTP and Google auth, money handled in cents, and Vitest plus backend-test coverage kept green.
Result and lessons
A working booking flow for the Lithuanian beauty market — find a salon by location, pick a specialist and time, and pay in person.
The full MVP scope is implemented with build, lint, and tests green; it's honest about status — the code is production-shaped but still needs its first run against a live backend deployment before it faces real salons.
Related articles
Read next
Related project stories
These projects share nearby technical or product decisions, so they show how the same principle behaves in another context.
Dev-storyCalendar booking platform
Scheduling on Vue 3 — availability, bookings, confirmations and one-click Meet video links.
Dev-storyCars marketplace
A car marketplace — a Vue 3 SPA with realtime search, external auction sources and price-drop alerts.
Dev-storyReal estate marketplace and radar
The car engine retargeted to real estate, with a listing-change radar.
Have a similar idea?
Discuss your project