MassHere: massage listing platform for Los Angeles

Client

MassHere

Industry

SaaS and startups

What we did

Website maintenance, Web applications

Live site

masshere.com

MassHere website
MassHere website, phone
3

user roles: guests, therapists, admin

4

plugins developed from scratch for the platform

5

automated email triggers, from registration to expiry

1 year

technical warranty with ongoing support

The client

MassHere is a Los Angeles listing platform for independent massage therapists: a premium alternative to platforms like MassageFinder and Thervo, where therapists own their presence and pay a flat subscription instead of per-booking commissions. The founder needed a scalable marketplace with a clear monetization model from day one.

They delivered everything on time, were incredibly responsive, and answered all my questions, requests, and suggestions within minutes. … Their price-to-quality ratio is excellent.
Tatiana KanunnikovaTatiana KanunnikovaFounder

Three user roles and reliable billing

The platform had to work for three distinct users simultaneously: guests browsing the catalog, therapists managing their profiles, and an admin moderating content and overseeing subscriptions. Each required a completely different interface and set of permissions.

The business model depended entirely on reliable subscription billing. If Stripe webhooks failed, therapists would lose access incorrectly — or keep it when they shouldn't. Getting this right wasn't optional.

Built on October CMS v4, Laravel v12 and PHP 8.2

The architecture is built on October CMS v4 with Laravel v12 and PHP 8.2 — a stack that gives full control over custom logic without fighting a rigid framework. Four plugins were developed from scratch by Uwindi:

Users — extends RainLab.Users with a full custom workflow: moderation states, profile editing, catalog search with filters, and the algorithm that separates premium and standard listings in search results.

Stripe — handles the full subscription lifecycle: checkout, webhook processing for payment confirmation and expiration events, automatic renewal, and access blocking when subscriptions lapse. Tested end-to-end in Stripe's test mode before going live.

Google Map — stores geo-coordinates at profile creation and renders the therapist's location on a map card without repeated external API calls. Clean, fast, and cost-efficient.

How premium listings rank above standard

The catalog logic distinguishes between two account types: premium profiles appear in randomized order at the top of results, while standard profiles are ordered by registration date. This gives the subscription model real value — premium placement is genuinely visible.

What the admin panel controls

The admin panel gives the operator full control: user management with quick search, profile moderation (approve or reject), content editing via the CMS editor, and the ability to log in as any user to inspect or fix their profile directly.

Dallas hosting and platform security

The platform is hosted on Uwindi-managed infrastructure with a server in the Dallas, TX data center — chosen specifically for its proximity to the Los Angeles target market. The setup includes SSL, DNS configuration, MySQL, and all environment variables managed securely in .env outside the repository.

Stripe webhook endpoints are protected with signature verification. Passwords are stored using Laravel's bcrypt implementation. Admin access is locked to a separate URL.

Launched and built to scale

MassHere launched as a fully operational marketplace — ready for therapists to register, build profiles, and accept subscribers on day one. The platform is built to scale: new cities, additional subscription tiers, or a messaging system can be added without touching the core architecture.

Documentation and a 1-year warranty

The client received complete technical documentation covering the full system — architecture, admin workflows, business logic, server environment, and environment variable reference — along with a 1-year technical warranty and ongoing support.

Planning a marketplace, directory, or subscription platform? See how we approach custom web application development.

MassHere massage booking platform home page
MassHere search for wellness professionals on two phones
MassHere therapist sign-up and specialist search on two phones
MassHere home page and massage types on two tablets

What MassHere got

  • Full-stack web application built on October CMS v4 (Laravel) with custom plugin architecture developed by Uwindi
  • Therapist directory with advanced filtering by city, zip code, massage type, and price range
  • Premium subscription system via Stripe — with automatic renewal, webhook processing, and access control
  • Custom moderation workflow: profiles go live only after admin approval
  • Google Maps integration using geo-data stored at registration — no repeated API calls
  • Branded transactional email system with 5 automated triggers (registration, payment, renewal reminders, expiration)
  • Hosted on Uwindi-managed infrastructure with Dallas, TX data center — optimized latency for LA audience
  • Full client handover with technical documentation covering architecture, URL structure, admin panel, and business logic

More case studies

All case studies
Digital Wizards website
Digital Wizards website, phone
Digital WizardsSaaS · Brand, site

An SEO platform up against Ahrefs and SEMrush: sharp positioning, a brand and a B2B landing page

Dental clinic website: guarantees for patients
Dental implantation page on a phone
MedfnprHealthcare · Site, ads

Uwindi built a dental implant landing page for FNPR Clinic in 2 weeks — 18 sections, 45+ UI components, CRM integration. Appointment requests surged within the first month.

ShareGo car-delivery platform for Turo hosts, landing page and the new-trip screen on a phone
ShareGo app on a phone: the new-trip screen with a map of the US
ShareGoSaaS · Brand, web app, support

A Turo fleet service’s brand, web app and investor page: Top 20 at Startupbootcamp

Start with
one message

Konstantin Tesov
Konstantin TesovFounder, Uwindi
  1. A few lines are enough.
  2. The founder reads every request himself and replies within one business day.
  3. Then a 20-minute call to see whether we are a fit; if we are not, we tell you straight.