concept · e-commerce
Föhn Coffee Roasters
A small specialty roaster, if it existed. The storefront works for real: a cart that survives a reload and syncs across your open tabs, and a genuine Stripe checkout in test mode. It's here to show that the ordinary parts of a shop are worth getting right.
Föhnsturm
Light roastEthiopia · Yirgacheffe
A bright, floral washed Yirgacheffe. The one that tastes like a window opening.
Alpenglut
Medium roastColombia · Huila
A rounded everyday medium. Red apple up front, cocoa on the way out.
Nachtzug
Dark roastSumatra · Gayo
A deep, low, after-dark roast. Wet-hulled Sumatra with no sharp edges.
Bergquell
Medium roastGuatemala · Antigua
A volcanic-soil Antigua: toffee body with a clean citrus snap.
Morgentau
Light roastKenya · Nyeri
A punchy Kenyan AA. Blackcurrant acidity, juicy and loud.
Frühzug
Medium roastBrazil + Ethiopia
The breakfast blend. Built for milk, steady by the litre.
A real store, minus the real charge. The cart persists to localStorage, syncs across your open tabs over a BroadcastChannel, and the total is priced on the server from the catalogue, never from the browser, before it ever reaches Stripe.
cart state · persisted + broadcast verbatim
// cart is empty, add a coffee
0 bags · subtotal CHF 0.00
BroadcastChannel "foehn-cart" · open this shop in a second tab and watch them stay in sync
Product art is generated SVG, not photography, so the concept ships self-contained, with no stock images and no layout shift. A real catalogue would serve responsive <img srcset> with explicit width/height instead.