Day 116: Pricing in Public
For most of the tools Pinchy competes against, the price is a locked door. You read the feature list, you nod, you reach for the cost, and the cost is a button that says “contact sales.” I understand why those companies do it: price discrimination is easier when nobody can compare notes, and a sales call lets you size the deal before you name it. But I kept coming back to the same problem: Pinchy is a self-hostable AGPL tool, and the person most likely to adopt it is a developer who found it, cloned it, and ran it on a spare box before anyone in their org had heard the word “procurement.” Put a sales wall in front of that person and you’ve filtered out exactly the people who’d carry you inside. So today, in website PR #6, the pricing page went live with an actual number on it.
The model, said plainly
Community is free and stays free. It’s the self-hosted build under AGPL, with no user limit: if you want to run Pinchy for your whole company and never pay me a cent, that is a supported, intended path, not a loophole I’m hoping you don’t find. Pro is a flat ~€99 a year for up to 10 users, billed annually. The word doing the heavy lifting there is flat. Not per-seat. Not per-agent. Not per-message. And, the one I care about most, no markup on model API usage: you bring your own provider keys, the tokens you spend with OpenAI or Anthropic or Google are between you and them, and I don’t sit in the middle taking a cut of your inference bill. Above ten users you get a quote, and the quote is something you review and accept online. No call. If a number on a screen and a checkbox can close the deal, a number on a screen and a checkbox should close the deal.
None of that is a growth tactic dressed as generosity. It’s the same argument the rest of the product makes, just pointed at the invoice. The whole premise of Pinchy is that you can see what it does: a per-agent tool allow-list that starts at zero, a tamper-evident audit trail, governance you can inspect rather than trust. A pricing model you can’t see contradicts that. If I ask you to run governance software whose own cost is opaque, I’ve lost the thread.
The honesty-fixes that came with it
Here’s the part I didn’t expect. Putting up a real pricing page is less like writing a paragraph and more like turning on a light in a room you’ve been using in the dark. You find out what’s been on the floor the whole time. A pricing page links to a trial, and a trial links to a privacy policy, and a privacy policy makes claims about systems, and the moment those claims are sitting next to a number people will actually compare, they have to be true.
So the same day carried a trail of small corrections. PR #7 fixed the trial duration: it had been advertised as 14 days when the trial actually runs 30. That’s not a price I undersold; it’s a promise I’d been under-keeping, and I only caught it because the pricing work made me read the trial copy as a stranger would. PR #10 rewrote the privacy page to name the mail provider that actually carries the mail: I’d dropped Resend and moved transactional email to Migadu a while back, and the privacy page had quietly kept naming the old one. A privacy page that lists the wrong subprocessor isn’t a typo; it’s the document a careful buyer reads most closely, describing a data flow that no longer exists. PR #9 finished the lambda→Odoo trial migration cleanup across docs, privacy, and FAQ, so the trial’s own backend story stops referring to plumbing I’ve already torn out. And PR #8 linked the Pinchy Connector Odoo App Store module from the website, so the path from “I use Odoo” to “here’s the free connector” is one click instead of a riddle.
Two Pinchy-side PRs landed in the same spirit of making the catalog match reality. PR #489 reconciled the Ollama Cloud catalog with the live model list: the menu of models you could pick had drifted from the models actually on offer. PR #493 added a mention of the free Pinchy Connector App Store module to the Odoo docs, so the website and the docs now tell the same story about it instead of each knowing half.
Day 116
The headline of the day is the number. The lesson of the day is everything that turned out to be standing behind the number. I’ve written before (more than once) that “I built it” and “it works in production” are different claims; today’s variant is that “I priced it” and “everything the price page touches is true” are different claims, and I’d been living comfortably inside the gap. The trial said 14 when it meant 30. The privacy page named a vendor I’d stopped paying. None of those were lies I told; they were truths I stopped maintaining, which from the outside is the same thing. Publishing a flat number was the easy decision; it came out of a value I already held. The hard part was that a public price is a magnet for scrutiny, and scrutiny doesn’t politely confine itself to the price. It reads the trial copy. It reads the subprocessor list. It reads the room. The most honest thing I shipped today wasn’t the €99; it was being forced to make the rest of the page deserve to sit next to it.