Eighty products, one decision.
- Client
- Indigo Sundries Soap Company
- Industry
- Handmade soap and beard care
- Engagement
- Client work
- Status
- Pre-launch
- Role
- Design, UI Design
- Stack
- Next.js, Supabase, Stripe, Tailwind CSS
Deployment note — Build is on a preview URL with known outstanding defects. The company’s production domain currently still serves their previous Squarespace site.

02
Problem
A family soap maker with around eighty products on a hosted site that could not support the one thing that would raise order value: guided bundling. Eighty near-identical bars is not a catalog, it is a paralysis engine.
03
Insight
Nobody wants to compare eighty bars of soap. They want to be told which five are for them. Turning the catalog into a mood-filtered choose-five-ten-or-twenty flow converts the size of the range from a liability into the reason to buy.
04
Direction
Heritage apothecary — cream ground, tan and brass, deep indigo and terracotta, in a traditional serif over a humanist sans. Product photography on plain grounds. Craft-market register, deliberately traditional.
05
Execution
One hundred and twelve routes: nine shop categories, eight soap sub-categories, around eighty product pages, bundles, subscriptions, and accounts, on a custom storefront over a hosted database with a real payment integration.
06
System
Product media served from object storage; checkout and accounts custom-built rather than hosted.
Routes
112
Observed in build
Product pages
~80
Observed in build
Published reviews
5.0 / 1,200
Published by client
Known open defects
3 — logged, not shipped
Observed in build
The company publishes its own figures on the site: a 5.0 average across 1,200 reviews, and twenty-plus years of craft. No agency-attributable performance data exists for this build.
Reflection
I am including this at secondary rather than featured, and the reason is content hygiene, not code. The generated sitemap hardcodes localhost for all one hundred and twelve URLs. The previous platform is still named in live product copy on a site whose entire purpose was leaving it. The free-shipping threshold contradicts itself between the footer and the bundle builder. The build is the most technically ambitious in this set and the least finished, and pretending otherwise would be the wrong lesson to draw from it.