There is a particular sound a carbon-copy invoice book makes when you tear a page out of it. If you have ever stood at a farmers' market at seven in the morning in October, you have heard it forty times before lunch.
I was at the market buying garlic. The man behind the table had been farming for thirty years and selling at that market for fifteen. His produce was excellent. His invoicing was a disaster.
He wrote every order by hand. He added the totals on a pocket calculator. At the end of the month he sat at a kitchen table and went through the book page by page trying to work out who had paid him and who hadn't. When a restaurant customer called asking for "the invoice from three weeks ago," he flipped through carbon copies until he found it, then photographed it with his phone and texted the picture.
He wasn't lazy or behind the times. He was busy. Every hour spent on paperwork was an hour not spent farming, and every accounting product he had looked at was built for someone with an accountant.
He told me — and this is the line that started the whole thing — I don't need books. I need to know who owes me money.
That's a much smaller problem than "accounting software." Small enough to build.
So I built Canmers.
The problem isn't accounting. It's the twenty minutes after the sale.
Here's what I got wrong at first. I assumed the problem was invoicing. It isn't. Invoicing is the easy part — anybody can format a document.
The real problem is the shape of a farm sale:
- The same dozen products get sold over and over, at prices that shift with the season.
- The same few dozen customers buy them, most by name and handshake.
- Money arrives later, in a dozen different ways, and sometimes not at all.
- Somebody, at some point, needs to know who owes what, right now, without opening a filing cabinet.
Generic invoicing tools handle step one and abandon you at step four. Accounting platforms handle step four but demand you become a bookkeeper first — chart of accounts, tax codes, reconciliation, a subscription that costs more per month than a case of garlic.
What sits in the middle — a product catalog, a customer list, and a running answer to who owes me money — barely exists at a price a market stand can justify.
The design rule: if it needs explaining, it's wrong
I gave myself one constraint. He should be able to use it without a phone call from me.
That constraint killed a lot of good ideas.
No blank invoice form. You save your products once — hardneck garlic, sold by kg — and then writing an invoice is picking from a dropdown and typing a number. Pick the product, the unit and price fill themselves in.
No separate "mark as paid" screen. The status dropdown lives right in the order list, colour-coded. You look down the list, you change three of them, you close the tab.
No dashboard you have to interpret. Four numbers, in the language he already used: Owed this year. Paid this month. Orders this month. Need attention. Each one is a link — click Owed this year and you get exactly those unpaid orders.
No lock-in. One button downloads every order as a file you keep. It's his data.
The sidebar still says what it said on day one: Built for farmers, not accountants.
The feature that mattered most was the boring one
I'll tell you which feature made the difference, and it isn't a chart.
It's this: you can set your starting invoice number.
He was on invoice #4,206 in his paper book. If the software had started him at #1, he'd have had two parallel numbering systems and a headache every time a customer referenced an old order. He would have quit in week one.
So there's a field in settings. You type 4207. Done. Every business gets its own counter, so your numbering is yours and nobody else's. The step-by-step guide walks through it in three clicks.
The same principle covers dates. You can write an invoice dated last March, which means you can type your paper history in and then carry on with the same numbers. Your records stay continuous. Nothing starts over.
Boring, unglamorous, and the thing I'd build first if I started again.
What it actually does
The whole product, honestly:
Orders. Auto-numbered invoices. Line items from your product catalog. Discount, tax, and shipping — each with a note field, because "market-day discount" is worth writing down. Nine order statuses from Created to Completed, including Returned, Refunded, and Cancelled. Filter by status, month, date range, customer, or order number. Every filter is in the web address, so "all my unpaid orders" can live in your browser bookmarks.
Print, PDF, email. Print straight from the browser. Download a PDF. Or hit Email invoice and your own mail app opens, pre-filled with the itemised order — so the mail arrives from your address and the reply comes back to you, not to a noreply robot.
Products. Name, unit, price, default quantity. Change a price once; every future invoice picks it up. Past invoices keep the price they were written at.
Customers. Address autocomplete, so an address is three keystrokes. Every order that customer ever placed, ending in a bold grand total — what they're worth to you, lifetime. On the paid plan, a map of the delivery address, which turns out to be genuinely useful when you're planning a delivery run.
A dashboard. Four cards you don't have to interpret. Three daily bar charts — orders, unique customers, and revenue per day. A run-rate projection for the month in progress. An order pipeline showing where this month's orders are stuck.
An audit log. Every change to every order is diffed and recorded. Status changed: Pending → Paid. Details updated (Customer, Date). Items updated (1 added, 2 changed). When a customer disputes something, you have the receipts — including the reason someone typed when they cancelled it.
Team access. Invite your spouse, your farmhand, your bookkeeper. Members write orders; admins can delete things and touch billing.
The full breakdown is on the features page.
The smallest decisions took the longest
Three that I'd have got wrong without standing at that table.
The list of units. Kilogram, dozen, each, pound, bunch, box, litre, tray. That's the entire list, and it took me longer to settle than the database schema did. It isn't a generic unit list — it's a picture of what small sellers actually sell. Vegetables by weight. Herbs by bunch. Eggs by dozen. Honey by litre. Seedlings by tray. Ship only "each" and the product is useless before it opens.
Invoices are short. A farm order is two or three lines, not twenty. I had sketched a beautiful twenty-row line-item editor with keyboard navigation and bulk paste. Wrong problem entirely. Nobody needs row nineteen to be fast; they need row one to be fast, which is why picking a product fills in the unit and the price and leaves the cursor in the quantity box.
The gap between "created" and "paid" is the entire product. Every other feature is scaffolding around one question: who owes me money right now? That's why the statuses are what they are, why the dashboard leads with Owed this year instead of revenue, and why that card is a link — you click the number and you're looking at exactly the orders behind it. In the paper book, that gap was invisible. It was the reason for the kitchen-table evening at the end of every month.
What I'd tell you if you're building for a non-technical trade
Four things I learned the expensive way.
1. Watch the workaround, not the complaint. He never said "I need invoicing software." He said he needed to know who owed him money. The feature list came from watching what he already did on paper.
2. Migration is the product. Nobody starts from zero. They start from a paper book, a spreadsheet, a shoebox. If your product can't accept their history and their numbering on day one, it doesn't matter how good day two is.
3. Use their words. Everything internally is called an invoice. Everything on screen says Order, because that's what he called it. The nav says My Store, not Settings. The dashboard says Owed this year, not Accounts Receivable. Free.
4. Price it like they price. He sells garlic by the kilo and knows his margin to the cent. A $50/month subscription is not a tool to him, it's a line item that has to earn out. So the free plan is genuinely usable — unlimited invoices, a real product catalog and customer list, the full dashboard, the audit log, PDF export, data export. Plus is $6.99 USD a month, or $4.99 a month if you pay yearly, with a 30-day free trial. That's roughly half a kilo of garlic.
It's live, and it's free to try
Canmers is a working product, not a demo. If you run a market stand, a CSA, an egg route, a small orchard — or a corner shop, a bakery, a market stall — it takes about four minutes to set up.
Start free. If you outgrow it, Plus is $6.99 USD.
And if you're building something for a trade you're not part of: go stand in the place where the work happens. He handed me the entire product spec in one sentence while wrapping garlic in newspaper. I just had to be there to hear it.
Built with Next.js, Postgres, and too many early mornings at the market.
More on what Canmers does: all features, the step-by-step guide, and what each plan costs.