
Artisanly: Consignment Billing for Small Food Producers
A consignment billing ledger for small food producers that bills each stockist on what actually sold, not on what was dropped off.
Project Goals
Replace notebook-and-memory consignment tracking with a single shared ledger, make the arithmetic visible so producer and shop agree before the driver leaves, support counting stock one-handed while standing in a shop, and keep the product usable for a producer with a handful of stockists as well as one with dozens.
The Problem
Consignment billing is a bookkeeping problem disguised as a delivery problem.
A small producer drops off twelve jars at a shop. A few weeks later they come back. Some jars sold, some are still on the shelf, and one broke. The shop remembers it one way, the producer remembers it another, and the invoice gets written by whoever sounds more certain.
Multiply that by every stockist on the route and the producer isn't running a food business anymore. They're running a reconciliation business, badly, from a notebook.
What We Built
We built one ledger per stockist, settled on what actually sold.
The delivery screen is the whole product. You arrive, count what's still on the shelf, and the app works out the rest: what sold since the last visit, what needs replacing and what the shop owes. The arithmetic is shown line by line instead of collapsed into a total, so both sides can agree on it before anyone gets back in the van.

It's built to be used standing up in a shop, one-handed, with a crate under the other arm.
Delivery Decisions
Most of the work went into deciding what the product should leave out. Four decisions shaped everything else.
Settle on units sold, not units delivered. Billing on what was dropped off is simpler to build. It's also what makes shops push back, because they end up paying for stock that's still on their shelf. Settling on what sold means the invoice matches what the shop actually took in, so there's far less to argue about.
Show the working, not just the answer. A single total invites a dispute, because nobody can see where it came from. A line for each product (delivered, still on the shelf, sold, owed) lets the shop owner check it in the time it takes to restock. When the numbers are visible, agreement happens at the counter instead of over the phone a week later.

Design for the shop floor. The person using the app is usually the driver too. They're standing between shelves, often with stock in one hand. That ruled out dense tables and small tap targets, and it's why the count happens on one screen in a fixed order rather than across several forms.

Keep the small producer in. A producer with a handful of stockists has the same problem as one with dozens, just less of it. The free tier covers anyone under 25 stores and needs no card to start, so a producer can try it on their real route before paying anything.

Technical Implementation
We used Astro for the marketing site and product shell, with TypeScript throughout. The canvas-driven hero renders the actual product screens rather than mockups, so what a producer sees on the homepage is what they'll use in the shop.
Commission and consignment rules are modeled per stockist. A producer can run different terms with different shops without keeping the difference in their head, because each ledger applies its own terms when the count is settled.
WhatsApp is the support channel, which matches how producers in this trade already work. Asking them to open a ticketing system would have added friction with nothing gained.
Who It's For
Artisanly is for the producer who makes the product, drives the route and does the invoicing, often on the same day. They don't need an accounting package. They need the visit to end with a number both sides accept, and a record they can look back on when the shop asks what happened last month.
That's the whole brief, and it's why the product stays small.
Need a product built around how your customers actually work? Let's talk →
See more of our work View case studies →
Like what you see?
Tell us what you're building and we'll tell you how we'd approach it.
Start a project