2
7 Comments

I spent two months building on a premise that died in a pricing announcement

I started Castforge in March with a simple pitch: you already pay for Claude Pro and ChatGPT Plus, so use those subscriptions instead of paying per token through five dashboards. Bring what you have and start coding.

It was a good pitch. It was also the wrong foundation, and I did not find that out from a customer. I found it out from a provider pricing page. The terms around programmatic use shifted, and that whole angle stopped being something I could honestly build a business on.

That is a strange thing to absorb two months in. The product still worked. The sentence I had been using to explain it did not.

What I did was stop selling the billing and start selling the thing I had accidentally spent all my time on. Because when I looked at where the months had actually gone, almost none of it was auth. It was making a team of agents tell the truth about what they had done: a board that does not claim a card is finished when nothing was recorded, a check that says it could not run rather than quietly passing, opening a project not being an accidental decision to spend money.

Nobody was ever going to stay for the billing. They stay because the thing does not lie to them. I had been building the real product for months while describing a different one.

Two things I would tell anyone in the same spot:

Write your premise down somewhere you will re-read. Mine lived in my head, so when it died I had nothing to diff against and it took weeks to notice.

Watch where your hours actually go, not where your pitch says they go. The gap between those two was the answer, and it was sitting there in my own commit history the whole time.

Castforge is a public beta now, Windows, free while it is early access. Solo, six months in.

castforge.ai

on September 9, 2026
  1. 2

    The pricing change killed the original wedge, but your own build history suggests the real product was elsewhere. Have beta users responded to the “doesn’t lie about what it did” value strongly enough to confirm the pivot, or is that still unvalidated?

    1. 1

      Honest answer: not validated in the way you mean. Nobody pays for it yet, so I cannot point at retention or revenue and say the pivot held.

      What I do have is small and directional.

      The beta group is a couple dozen people, and the conversations that go anywhere all start the same way: someone asks whether it actually did the thing.

      The answer is that the board would once say Done with nothing recorded, and now it names and repairs that instead.

      That admission is what turns a like into a question, on Discord and on X both.

      Nobody has ever asked me a follow-up about billing.

      The other signal is negative space. When I stopped leading with subscriptions, nobody noticed or complained. If that had been the wedge, someone would have.

      So: a hypothesis with early evidence, not a confirmed one.

      The first real test is strangers this week, which is why I am posting instead of building.

      1. 1

        That’s a useful early signal, especially the “what did it actually do?” questions. If you’re open to it, what’s the best email to reach you on?

        1. 1

          Of course, jabenhaim@castforge.ai or you can reach me on the Discord directly as well :)

          1. 1

            Thanks! I’ve just sent it over.

            Looking forward to hearing your thoughts whenever you have a chance.

  2. 2

    That distinction between the subsidy (using existing Claude/ChatGPT plans) and the durable job (agents that report truthfully) is a great recovery. One practice I’d add: keep a one-page assumption ledger with provider dependencies, a “what would make this invalid?” trigger, and a monthly review; pair it with five short customer interviews asking what they’d keep if the original billing advantage disappeared. That could turn a pricing change into a positioning test much earlier. The commit-history audit is especially good—tag work by user-visible outcome so the pattern is searchable instead of relying on memory.

    1. 1

      The assumption ledger is the thing I needed in March. The "what would make this invalid" line is the part I would have skipped, and it is the part that would have caught it.

      Funny thing, I built one anyway, just too late and one layer down.

      After a wrong fact got copied from a doc into shipped code, I added a small file to the repo that records which version of each provider we are aligned to, with a reason written down whenever we skip a newer one, and a build check that fails if the code drifts from it.

      Same mistake as the pitch, so same fix.

      Tagging commits by user-visible outcome I have not done. Right now you can only see the pattern if you already know what you are looking for.

      Going to try it.