Skip to content
Product Ecosystem Case Study

Multi-Service Ecosystem for a European Beauty Chain

8 Services. 3 AI Systems. One Developer.

A European beauty chain that outgrew its tools. I designed and built a 7-service ecosystem handling booking, payments, AI consultation, marketing analytics, and multi-country content - each service deployed independently, all working as one system.

Product Engineer & AI ArchitectBuilt from scratch
18
Studios
managed through one system
5
Countries
6 languages, 4 currencies
30k+
MAU
monthly active users
1
Developer
8 services, 3 AI systems, sole dev

Why One App Wasn't Enough

The business started as a single-city beauty studio. As it expanded into an international network, the architecture had to evolve - or become the bottleneck.

โš ๏ธ

Single-App Bottleneck

Everything lived in one repository - booking, content, admin, AI, analytics. Every deployment risked the entire system, and teams stepped on each other's changes.

๐Ÿ”ง

CRM Wasn't Enough

Altegio handled basic booking but had no support for multi-language content, loyalty programs, payment processing, or marketing attribution. The business was outgrowing its tools.

๐ŸŒ

Multi-Country Complexity

Each new country needed its own domain, local SEO, currency, payment integration, and localized content. The architecture wasn't built for this kind of expansion.

๐Ÿ“Š

No Data Visibility

There was no way to track a user from their first ad click through to a completed booking and beyond. Marketing spend decisions were based on gut feeling, not attribution data.

Ecosystem Architecture

Multiple services, four databases, one connected system. Click any node to explore how it fits into the bigger picture.

Click a node to explore โ†’
Product DBAI + pgvectorAnalytics DBCMS DBUser TrafficOrganic, Paid, DirectCountry Domains5 domains ยท localized SEOCore FrontendBooking ยท Payments ยท LoyaltyAI Service21 tools ยท 4 channelsAdmin Panel133 actions ยท AI contentAnalytics19 dashboardsStrapi CMS7 content typesEmail Engine7 templates ยท 6 langs

Shared Infrastructure

All services deploy independently on Vercel. They share contracts (Prisma types, API conventions, webhook formats) but have zero shared runtime dependencies. Four PostgreSQL databases isolate workloads: product data, analytics events, AI embeddings (pgvector), and CMS content.

Key Architectural Decisions

Every major design choice had a context, alternatives, and specific reasoning. Here's what I chose and why.

01

Brain-first AI architecture (not FSM)

Context

The AI agent needs to guide users toward booking, but people ask questions in unpredictable order - price before studio, FAQ mid-booking, changing their mind halfway through.

Solution

Implemented a tool-calling LLM architecture where the model dynamically orchestrates tools based on user intent, rather than following rigid conversational trees.

Alternative considered

Deterministic FSM with fixed state transitions.

Why

Users don't follow linear flows. A brain-first approach handles multi-intent messages naturally - "Wroclaw, women, laser hair removal" triggers 4 sequential tool calls in one request.

Effect

Flexible conversations. The LLM was custom fine-tuned with iterative quality-first approach. Four response patterns (pass-through, merge, speaking, silent) cover every UX scenario.

02

Independent analytics with its own database

Context

Needed marketing attribution and lifecycle tracking, but product database queries are optimized for transactional workloads, not analytical ones.

Solution

Deployed a dedicated PostgreSQL database for analytics, ingesting real-time events via Vercel Analytics Drain and the Admin API.

Alternative considered

Google Analytics 4, Mixpanel, or embedded analytics in the admin panel.

Why

GA4 can't do cross-domain session stitching with booking lifecycle data. We needed full control over the attribution model and the ability to sync leads to bookings by phone number.

Effect

19 dashboard widgets. Multi-touch attribution with first-touch and non-direct-last-click. Lead lifecycle tracking from first web event to completed booking.

03

Per-studio Stripe integration

Context

Each studio might operate under a different legal entity in a different country, each with its own currency and banking.

Solution

Built a per-studio Stripe integration model where each studio provides its own API keys, allowing fully decentralized payment processing.

Alternative considered

Single Stripe account with Connected Accounts.

Why

Different jurisdictions, different currencies, different regulatory requirements. Per-studio keys give complete flexibility without Stripe Connect complexity.

Effect

Multi-currency payments (EUR/PLN/GBP/UAH). Full lifecycle tracking (PENDING โ†’ SUCCEEDED โ†’ REFUNDED). Automated email chains triggered by payment state changes.

04

Cron-driven automation layer

Context

Multiple business processes need scheduled execution: feedback collection, payment cleanup, analytics sync, exchange rate updates, stale lead expiration.

Solution

Distributed 15 zero-infrastructure Vercel Cron jobs across three services to handle all scheduled automation without maintaining a separate worker queue.

Alternative considered

Event-driven queue (SQS, RabbitMQ).

Why

Vercel Cron is zero-infrastructure - no queue to manage, no workers to scale. Each job is isolated in its own repository. Sufficient for current scale with room to grow.

Effect

Automated feedback chains (visit โ†’ treatment), stale lead expiration, daily analytics aggregation, knowledge base sync - all running without any manual intervention.

05

AI-assisted editorial engine: ~70 articles/week across 5 countries

Context

The business needed 14+ blog articles per week across 5 countries in the beauty and medical niche. Manual writing couldn't scale, and generic AI content risked hallucinations in a domain where medical accuracy matters.

Solution

Built an AI-assisted editorial pipeline inside the Admin Panel. Tavily discovers trending topics per country, editors curate and assign them, then GPT-5 generates articles in two stages -structured metadata first, long-form body second -all grounded in actual service and device data from the database. Hero images auto-generated via GPT Image 1.5. Editors review and publish.

Alternative considered

Hire copywriters for each country (~5 FTE), or use generic AI tools like Jasper that hallucinate freely in medical domains.

Why

Manual writing can't produce 70+ localized articles per week. Generic AI tools hallucinate -dangerous in medical content. By grounding generation in Tavily research and real service/device data from the database, every article is factually anchored.

Effect

Reduced editorial effort from full-time writing to curation and review. 6 content formats, zone-aware rotation to prevent repetition, medical safety filters with circuit breaker, cost tracking per article. Editors control topic selection and publication -AI handles the heavy lifting.

How Data Flows Through the System

Six cross-service flows show how user actions, business events, and data move through the ecosystem - each one connecting multiple repositories into a coherent pipeline.

Acquisition โ†’ Conversion

From first visit to completed booking

1

User lands on a regional domain (loveepil.pl, .de, .es...) via organic search or paid ads

2

Tracking pixels fire - GTM, Facebook, TikTok - events flow to Vercel Analytics Drain โ†’ Analytics platform

3

User browses localized domains, finds a studio via Google Maps, reads blog content from Strapi

4

Clicks "Book Now" โ†’ handed off to core frontend โ†’ multi-step booking wizard with Payments & profile

5

Completes payment via Stripe โ†’ webhook โ†’ admin processes โ†’ confirmation email โ†’ feedback cron in 24h

What the Ecosystem Delivers

One developer. Seven services. A connected system serving 18 studios across 5 countries.

๐Ÿš€

Scale

  • โœ“18 studios across 5 countries managed through one ecosystem
  • โœ“30K+ monthly active users across 6 localized domains
  • โœ“Multi-currency payments (EUR/PLN/GBP/UAH) via per-studio Stripe
  • โœ“New country launch: config + translations + domain, no core changes
๐Ÿค–

Intelligence

  • โœ“AI consultant: 21 tools, 4 channels, custom fine-tuned model
  • โœ“AI editorial engine: trend discovery โ†’ GPT-5 generation โ†’ medical safety โ†’ editor review โ†’ publication, ~70 articles/week
  • โœ“Custom attribution: first-touch + non-direct-last-click across 19 dashboards
  • โœ“Lead lifecycle: web event โ†’ phone match โ†’ booking โ†’ revenue attribution
  • โœ“Automated feedback chains: booking โ†’ 24h visit review โ†’ 18d treatment review
โš™๏ธ

Automation

  • โœ“15 cron jobs handle feedback, cleanup, analytics sync, content generation, and email triggers
  • โœ“AI-powered editorial pipeline across 5 countries: 6 formats, zone rotation, cost tracking, hero image generation -editors curate and publish
  • โœ“Stripe webhook pipeline: payment โ†’ purchase โ†’ loyalty โ†’ confirmation email
  • โœ“DeepL bulk translation across 6 locales with human review workflow
  • โœ“Full delivery: 8 services and 3 AI systems, architected, built, and maintained by one developer

Interested in the Architecture?

Whether you're building a multi-service SaaS, integrating AI into a product, or scaling across markets - I'd love to talk about system design.

View AI Agent Deep Dive โ†’