A family kitchen operation with a commerce backend to match.
- Client
- Abby’s Elderberry
- Industry
- Direct-to-consumer herbal wellness
- Engagement
- Client work
- Delivered through
- Appalachia Digital
- Status
- Live
- Role
- Art Direction, UI Design, Design System
- Stack
- Next.js, Supabase, Stripe, Tailwind CSS, Multi-channel catalog
Attribution — Their footer credits “Built by Appalachia Digital”.

02
Problem
A family making elderberry syrup in small batches had outgrown what a hosted store could do. The business had five distinct ways of selling — direct, subscription, bundle, wholesale, and independent sales reps — and a platform that only really understood the first one. Every additional channel meant another spreadsheet.
03
Insight
The bottleneck was not the storefront, it was the catalog. Once one product record can carry pricing identities for several sales channels at once, subscriptions and wholesale and bundles stop being separate systems and become views onto the same data. That is a backend decision that determines what the front end is allowed to be.
04
Direction
Apothecary without the costume. A deep plum and lavender palette with a berry accent — a genuinely owned color, not a wellness-category default — set in a variable serif over a humanist sans. Photography is warm and domestic: hands, kitchens, natural light. The register is heritage-craft, but the interface is a modern store.
05
Execution
A custom storefront over a hosted database and object store, with a bundle builder that turns choosing into a guided five, ten, or twenty flow with the discount built in. Subscriptions, wholesale, affiliate, and sales-rep programs each get a real route rather than a contact form.
06
System
Product records carry pricing identifiers for several channels simultaneously, so the same item can be sold direct, on subscription, and through a legacy channel without divergent inventory. Images are served from object storage rather than the repo, which keeps the catalog editable by the client without a deploy.
Families served
5,590+
Published by client
Orders shipped
5,421+
Published by client
States reached
50
Published by client
Verified reviews
4.9 / 46
Published by client
The client publishes its own numbers on the site: 5,590+ families served, 5,421+ orders shipped, all fifty states reached, and a 4.9 average across 46 verified reviews. Those are the client’s figures, stated by the client — not results I am claiming for the build.
Reflection
One thing I would fix on sight: the animated statistics band server-renders as zero and counts up on the client, so anyone without JavaScript — and some crawlers — sees a row of zeros where the strongest proof on the page should be. Counting animations are a good example of an effect that quietly costs you the thing it was decorating.