All projects

Beauty booking marketplace

A beauty & wellness booking marketplace for Lithuania — geo-search salons and book.

Vue 3webedge-dbGeosearch
BeautyMarket screenshotDev-story
01

Challenge

Booking a beauty service is about a salon near you, the right specialist and an open time — not a listing you buy online.

02

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.

03

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

01

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.

02

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.

03

Main modules and user path

M01

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

M02

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

M03

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

M04

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

M05

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

04

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.

05

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.

Read next

These projects share nearby technical or product decisions, so they show how the same principle behaves in another context.

Have a similar idea?

Discuss your project