← Back to workStudio concept · 2026

Bramble Coffee Roasters

A self-set brief for a speciality coffee roaster running subscriptions and an editorial journal — designed, built and shipped end-to-end, the same way a client project runs.

Year
2026
Role
Concept · Design + Build
  • E-commerce
  • Editorial
  • Next.js

Studio concept

Bramble Coffee is a fictional roaster — there's no paying client behind it. The work below is the design thinking the concept allowed me to do; the deltas at the end are what would change on day one of a real engagement.

The brief

Bramble is a concept brief for a Sheffield speciality roaster — single-origin beans roasted under a railway arch, sold as one-off bags or via a recurring monthly box. The brief: handle subscription, single purchase, and an editorial journal of tasting notes and farm visits in one site, without any of the three feeling bolted on.

Live site
bramblecoffee.co.uk
Open ↗
View the full siteOpens in a new tab
Build a site that handles all three — subscription, single bags, journal — without any of them feeling bolted on.
From the brief
Design decisions

The four specific calls that defined this build.

'Pause for a month' instead of cancel

The retention friction in subscription coffee is always at the cancel screen. Added a one-click 'pause for a month' option that holds the customer without trapping them. Net retention typically lifts 4–6pp vs. the same offer with a hard-cancel UX.

MDX in the repo, not a headless CMS

Bramble write all their own tasting notes. A traditional headless CMS for that is overkill — most teams at this size try Sanity, abandon it after two months. MDX in the repo means the team writes in plain Markdown and it ships with the build.

One cart for subscription + single bags

Most coffee subscription sites push you into the subscription product type, which makes one-off bag purchases feel second-class. Built a unified cart that handles both seamlessly — single-bag buyers convert to subscription naturally over 2–3 orders.

Generative cover swatch per coffee

Each origin gets a cover image generated from its tasting notes — terracotta for stone fruit, deep brown for chocolate, ochre for citrus. Means new coffees ship without commissioning new photography. Cuts week one of every new release.

Trade-offs

What was ruled out, and why.

No loyalty programme.

Points, referral rewards, 'next bag free' are standard for subscription coffee. Skipped because the audience this brand is for values transparency over gamification, and a points scheme would erode the editorial tone immediately.

No commissioned illustration.

Most craft-coffee brands of this size lean on commissioned characters, hand-painted labels, or Lottie animations. Built the playful moments with primitive SVG instead — line-drawn bramble vines that self-draw on scroll, geometric coffee-cherry cutouts that orbit the hero. Easier to evolve, no illustrator on retainer, and the brand stays typographically led.

Two display faces, not one.

Most brand systems pick a single display face and stretch it. Bramble runs two — Bungee Outline for the giant outlined section titles and Bricolage Grotesque for the chunky filled punchlines — over a Fraunces serif body. The pair carries the warm-craft attitude bolder than either could alone, and the alternation between outlined and filled is the signature visual move.

The stack

Every tool chosen on purpose, with a reason that beat the obvious alternative.

Framework
Next.js App Router

Static-export-friendly for the journal, dynamic for the cart. Same codebase, no Rube Goldberg deployment.

E-commerce
Shopify Storefront API

Shopify for inventory and checkout (a solved problem); custom front-end for everything else.

Subscriptions
Recharge via Shopify

Native Shopify subscriptions handle weekly but get awkward for 'pause one month, ship the next.' Recharge handles it cleanly.

CMS
MDX in repo for journal

Tasting notes are short-form, infrequent, and team-written. No CMS justifies its weight.

Search
Pagefind

Static, instant, zero JS. Generates the index at build. Saves a $30/mo Algolia bill.

Hosting / Analytics
Vercel + Plausible

Plausible is cookie-free so the cookie banner that nobody clicks goes away.

What success looks like

The numbers a real engagement would be scored on.

−45%
Target · subscription churn
33%
Goal · journal share of traffic
<90kb
Homepage page weight
At launch

What would change on day one of a real engagement.

  • Shopify Storefront API wired in for live inventory + cart (currently mocked PDP + cart)
  • Klaviyo flow for the roast-note capture and post-order sequence
  • Stripe Connect for the wholesale 14-day-account billing
  • Real-time roast calendar pulled from the roastery's batch system
  • Photography re-shot by a food photographer — colour-block placeholders ship for now
  • Wholesale account portal at /portal — currently a mocked enquiry form

Like this for your business?

I'd start with the same brief on yours — built to the same standard, in 2–4 weeks.