CLIENT: Loonshadow Coffee Roasters🇺🇸United States

Bloomwright - Coffee Subscription Platform with Honest Cancellation

Subscription Platform for a Minneapolis Coffee Roaster

Designed and built a clickable subscription platform for a specialty coffee roaster shipping across the contiguous US: a care workspace to skip, swap, pause, refund and cancel for subscribers, a cancel log that replays every screen a subscriber saw, and fulfilment batches that hold boxes with an unverified address, a failed payment or short stock.

Scope of Work
Product design, UI build and clickable demo
Industry
E-commerce & D2C / Subscription Box
Enterprise
Compliance & Certifications
ROSCAFTC Act Section 5California Automatic Renewal LawMinnesota Automatic Renewal LawFTC Mail Order RulePCI DSSCCPA/CPRACAN-SPAMTCPA

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, subscribers with a quick view panel, subscriber detail with 5 tabs, cancellations and saves with a cancel session replay, and the fulfilment batch board.

1 Offer
At most, per cancel session

The cancel button stays visible on every step and Accept offer sits beside No thanks, cancel at the same size. Each session logs every screen seen and button pressed.

48 h
Cut-off before renewal

Skips and coffee swaps work only before the cut-off. After it the box is locked and the buttons say why, so a late change never ships the old box by surprise.

24 Subscribers
Realistic demo data

A sample of the 6,030 headline subscribers, with 20 cancel sessions, 4 complaints, 14 fulfilment batches and the 7 coffees in the October box lineup.

The Problem

Loonshadow grew from a café roastery to about 6,000 subscribers on an off-the-shelf store app plus spreadsheets. The roast plan was rebuilt by hand every week from a CSV export, skips and grind changes made after the cut-off still shipped the old box, and cancelling meant emailing customer care, which drew complaints, chargebacks and a warning from the payment provider about dispute rates. Failed renewals were retried blindly, and nobody could say what monthly recurring revenue was or why people left.

Our Solution

Bloomwright runs the subscription business in one place: plans, renewals and dunning through a payment service provider, a subscriber account where people skip, swap, pause and cancel online, curation and roast planning, fulfilment batches with packing lists and labels, honest save offers, and MRR, churn and cohort reporting. Care sees every subscriber's boxes, payments and agreed renewal terms on one page.

The Challenge: Recurring Billing People Can Trust

A coffee subscription is a negative option plan under US law: the customer is charged until they say stop. Federal law, state automatic renewal laws and card network rules all shape how sign-up, renewal and cancellation must work, while the roastery has to turn thousands of changing preferences into roast and packing plans every week.

Cancelling Had to Be as Easy as Signing Up

ROSCA requires clear terms, express consent and a simple way to stop recurring charges, California's automatic renewal law adds online cancellation and limits on how save offers are presented, and Minnesota's requires an online cancellation method. The FTC's click-to-cancel amendments were vacated in July 2025 and rulemaking restarted in 2026, so Bloomwright meets that standard anyway.

Changes Racing the Cut-off

Every skip, swap, grind change and pause alters what gets roasted and packed. Changes made after the cut-off still shipped the old box, and the weekly roast plan from a CSV export left one coffee over-roasted and another short.

Failed Renewals Retried Blindly

Card networks limit how often a declined card may be retried and treat some decline codes as final. Retrying every failure blindly risks breaking those limits, and the box for a failed renewal has to wait until the payment is recovered.

Card Data and Consent Records

Loonshadow must never store card numbers, yet care needs to see which card a renewal used, and every consent, renewal disclosure, refund and cancellation has to be on record if a dispute or complaint comes in.

Our Approach: From Renewal Rules to a Clickable Platform

01

Spec and Rules Research

Mapped 10 user roles from care agents and the roastery to finance and gift buyers, 39 screens (28 staff and 11 public and subscriber screens, designed mobile first) and the data model for plans, subscriptions, boxes, renewals, cancel sessions, coffees, roast batches and fulfilment. Wrote down the rules the design follows: ROSCA, state automatic renewal laws, card network rules for stored credentials, PCI DSS scope, the FTC Mail Order Rule, CAN-SPAM, TCPA and state privacy laws.

02

Clickable Demo on a Production UI Kit

Built 5 key staff screens on a production dashboard kit: the dashboard with MRR, churn, 14 days of upcoming renewals and the October box lineup, the subscriber list with filters and quick view, subscriber detail with skip, swap, pause, refund, reship and cancel on behalf, cancellations and saves with the complaints tab, and fulfilment batches by stage. All actions run on local state.

03

What a Production Build Adds

Recurring payments and hosted card fields through Stripe or Braintree with Apple Pay and Google Pay, Avalara or TaxJar for sales tax, address verification, EasyPost or Shippo labels and tracking, Postmark, Klaviyo and Twilio messaging, a Gorgias or Zendesk inbox and QuickBooks Online export. Plus the public quiz, checkout and subscriber account, staff auth by role and a full audit log of every consent, disclosure, refund and manual edit.

Why It Works: Clear Terms at Every Step

Every Cancellation Can Be Replayed

Each cancel session records the reason chosen, the single offer shown, the outcome and every button pressed. When a subscriber complains, the care lead opens the exact session, and marking a complaint resolved requires a note.

The Agreed Terms Sit on the Record

Subscriber detail shows the renewal disclosure version shown at checkout, the consent timestamp and marketing email and SMS consent with dates. Card details stop at brand, last four digits, expiry and a masked payment provider reference.

Limits Built Into Care Actions

Refunds over the signed-in user's $150 limit become approval requests, cancel on behalf shows the confirmation email before sending, and bulk actions on the subscriber list stop at export, tags and messages, with no bulk price changes.

Boxes Hold Until They Are Right

Fulfilment groups charged boxes into batches of up to 120 by ship date, service level and box type. Boxes with an unverified address, a renewal in dunning or a coffee short on stock wait on hold, and the dashboard flags any box past its ship-by date.

Related case studies

View all: E-commerce & D2C
Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab