← All work
CommissionedIn development

Señorío de Líbano

A winery, its shop and its CMS — three apps in one monorepo.

Sector
Wine & spirits
Client
Señorío de Líbano
Role
Full-stack developer — sole build
Year
2025

The winery already had a site; this is its replacement, built as a proper system rather than a single codebase. The monorepo holds three apps — web-landing, web-shop and a Sanity studio — plus five shared packages (config, cms, ui, utils, wines).

Where each kind of data lives

The interesting decision is where each kind of data lives. Editorial and catalogue content — wines, descriptions, shipping rules — belongs to the winery’s own team, so it sits in Sanity where they can edit it without a deploy. Orders, which need transactional integrity, live in Neon Postgres behind Drizzle. Stripe’s Payment Element handles checkout. Everything visual flows from one @repo/ui package — shipped as raw .tsx and compiled by each app — so the landing site and the shop can’t drift apart.

A shape I keep reaching for

It’s the shape I reach for again and again: separate the content plane from the transactional plane, share the presentation layer, and let each app stay small.