All projects

Service marketplace

The same webedge-db engine for services — profiles, enquiries, reviews.

Vue 3webedge-dbMarketplace
paslaugosmarket.lt screenshotDev-story
01

Challenge

A services market is not about listings you buy — it is providers, the requests clients send them, and the reviews that build trust.

02

What we did

The carsmarket/housemarket architecture retargeted to services (Vue 3 + Vite + webedge-db, realtime search) with provider profiles, a client-enquiry flow and reviews.

03

Result

One more vertical proven on the shared engine, this time around enquiries and reputation rather than for-sale items.

Dev-story article

Service marketplace: how the project was built

We already had a working marketplace engine on our reactive backend, but it was built around products: a catalog, price filters, a finance calculator, a checkout-shaped flow. Services don't work that way — the thing being sold is a person with a profile, and buyers don't buy, they ask. The tension was reusing the same realtime engine while inverting the transaction: from browse-and-purchase to post-an-enquiry-and-receive-offers.

Sections

05

Modules

05

Stack

Vue 3 + webedge-db

01

Why the project exists

A services market is not about listings you buy — it is providers, the requests clients send them, and the reviews that build trust.

We already had a working marketplace engine on our reactive backend, but it was built around products: a catalog, price filters, a finance calculator, a checkout-shaped flow. Services don't work that way — the thing being sold is a person with a profile, and buyers don't buy, they ask. The tension was reusing the same realtime engine while inverting the transaction: from browse-and-purchase to post-an-enquiry-and-receive-offers.

02

What was built

The carsmarket/housemarket architecture retargeted to services (Vue 3 + Vite + webedge-db, realtime search) with provider profiles, a client-enquiry flow and reviews.

A Vue 3 SPA where providers own editable profiles, clients post service requests, and providers answer those requests with offers. Reviews, per-provider lead tracking, and search all run through the same reactive backend that powers our property and vehicle sites, with the data model retyped from listings to profiles and enquiries.

03

Main modules and user path

M01

service_requests plus service_request_offers: a client posts an enquiry and providers respond with offers, inverting the usual browse-then-buy flow into ask-then-answer

M02

seller_profiles with an upsertMine mutation so each provider owns and edits exactly their own profile record

M03

service_reviews with server-side summary aggregation (summaryForAds) so rating rollups are computed in the backend, not the client

M04

Lead tracking via contact_messages and lead_events, giving each provider an inbox and a per-seller event history for analytics

M05

SPA-on-Cloudflare-Pages plumbing: _redirects plus a write-spa-route-shells script that emits lightweight per-route index.html shells so a client-rendered app still has crawlable URLs

04

Architecture and technology decisions

Built with Vue 3, webedge-db, Marketplace.

Vue 3 + Vite SPA with @unhead/vue for meta, our reactive backend for database, realtime search and storage, BetterAuth for auth, and a migration of the Vue data layer onto TanStack Vue Query; deployed static to Cloudflare Pages.

05

Result and lessons

One more vertical proven on the shared engine, this time around enquiries and reputation rather than for-sale items.

It is honestly a young fork — two commits deep — that proves the same reactive marketplace engine can carry a services model, not just product listings, without rewriting the backend.

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