← 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
2026

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 and five shared packages.

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.