Back to case studies
Web Application
May 5, 20249 min read

Building CRM Systems for Niche Industries

Shared patterns across hospitality, US field services, and clinics-RLS, realtime, and domain-shaped data models.

Author
Viktor Stoimenovski

01Context

What this was

Generic CRMs are often too costly and complex for 1-5 person businesses. I’ve shipped industry-shaped systems-Urban Bar CRM, Venlyn OS, and a physiotherapy planner-where workflows, not feature checklists, drive the schema and UX.

02Problem

What was broken

Before

One-size tools need heavy configuration and still miss floor realities: peak-hour tablets, geography, or clinical record needs.

What had to change

Each domain demands different “hot paths”: bar lookups, service-radius validation, or structured session history.

  • 01Security must hold if UI is bypassed
  • 02Staff collaborate in real time
  • 03Mobile hardware constraints dominate

03Solution

What I built

Supabase Postgres + RLS everywhere for tenant and role isolation.

Realtime channels with reconnect-aware hooks and optimistic updates for operational floors.

Mobile-first layouts with 44px+ targets and PWA/offline considerations where the domain requires it.

Domain modules: denormalized read models for hospitality peaks; maps-backed radius logic for services; export-friendly records where compliance matters.

04Decisions

Key implementation decisions

  • 01

    Database-enforced authorization

    RLS policies mirror org boundaries-defense in depth beyond component guards.

  • 02

    Realtime as a product feature

    Bookings and floor activity need instant fan-out, not manual refresh.

  • 03

    Denormalization where milliseconds matter

    Trade storage for predictable latency on highest-frequency queries.

  • 04

    Integrations match the job

    Voice AI + maps for services; loyalty math server-side for hospitality; stricter record handling for clinical flows.

05Impact

Operational impact

  • Owners get one tailored system instead of a pile of spreadsheets and DMs.
  • Staff coordination improves during concurrent operations.
  • Customers see faster, more consistent service touchpoints.

06Results

Results

  • Reusable architectural patterns across three distinct verticals.
  • Evidence that domain time on floor/clinic/field beats generic CRM config.
  • Security posture aligned to multi-tenant SMB reality.

07Stack

Technology stack

Core stack
Next.js 14/15, TypeScript, Supabase, PostgreSQL, Tailwind CSS
Services CRM
Voice AI integration, Google Maps distance/radius
Patterns
RLS, Realtime, optimistic UI, PWA where applicable