Back to systems

Case Study 01

Snapshot: March 2026

Daily Libations, from customer product to MCP-native backend.

One system spans a local-first website, a Python FastMCP server, a shared Supabase data layer, and a separate Express-based Drink Pipeline. The point is not just cocktail data. The point is a product surface, an AI surface, and a simulation engine grounded in real dilution math, batch formulation logic, and service-time physics.

  • 45 FastMCP tools
  • 9 tool modules
  • 2 physics engines
  • 1 shared Supabase core
Abstract systems diagram for Daily Libations

System Surface

Four connected layers, one product.

The customer-facing site stays fast and local. The MCP surface stays accurate and tool-rich. Both touch the same domain model without collapsing into one tangled runtime.

Customer product
  • Next.js and React 19 website with Redux, Tailwind, and shadcn.
  • Local-first calculator with browser-side simulation and optional cloud sync.
  • Multiple interactive widgets without requiring the MCP layer for core UX.
AI and data surface
  • Python FastMCP server exposing 45 tools across 9 modules.
  • Shared Supabase state plus extra MCP-only tables for scenarios, clusters, venues, and trends.
  • Separate Express-based Drink Pipeline for scraping, parsing, and normalization.
What shipped
  • Time-stepped physics simulation for dilution and service scenarios.
  • Remote MCP exposure through Cloudflare Tunnel and custom remote MCP integration.
  • Kubernetes and Docker deploy path for the Python service.
Key architecture decision

The browser uses a fast TypeScript simulation engine for interactivity while the MCP layer uses a Python engine for accuracy. That split is deliberate. The site stays responsive and the agent surface stays faithful.

Why it matters

This is a useful example of how to separate product UI from agent infrastructure without duplicating the entire system or forcing every user interaction through an AI boundary.

Stack

Chosen for behavior, not fashion.

  • Next.js
  • React 19
  • Redux
  • Tailwind
  • shadcn
  • Supabase
  • Python
  • FastMCP
  • Express
  • Docker
  • Kubernetes
  • Cloudflare Tunnel

Need a product surface and an AI surface to coexist cleanly?

That is a systems problem, not a copy problem.

Email Rarity Index