The platform can change its mind
Vigilance was working. Then Shopify deprecated the one file the whole product ran on. Here's what I'd price differently next time.
Vigilance had a clean pitch. Browser extensions like Honey and Capital One Shopping cycle through discount codes at checkout on behalf of the shopper. The merchant didn't authorize most of those codes. We could see it happening, and we could stop it.
We launched the public beta in November 2022 and hit the Shopify App Store in December. By January we had Shopify Plus merchants signing up. For a brand doing real volume, blocking injected codes was worth thousands a month — the math wasn't a stretch, it was arithmetic.
It was also the first company I ever raised outside money for. About $250,000, mostly from operators inside the Shopify and DTC world. I wanted their names on the cap table more than I wanted the cash.
Then Shopify announced it was deprecating checkout.liquid.
That file was not a component of our product. It was the mechanism. Everything we did — the detection, the blocking, all of it — ran through the one hook Shopify was taking away. There was no version of Vigilance that survived on the other side of that announcement without being a completely different product built by a completely different team.
So we shut it down and offered to give the money back.
The part people get wrong
When I tell this story, the response is usually some flavor of "platform risk, everyone knows." Nobody knows. Everybody says it. Saying it and pricing it are different activities.
Here's what I'd actually done, and what I think most app founders do: I treated the platform's current surface area as a permanent feature of the world, and I treated the possibility of it changing as a tail risk. It isn't a tail risk. It's the base case on a long enough horizon. Platforms ship. Shipping means deprecating.
The deprecation deadline eventually got pushed out to 2025. We could have run the business for another two years. I don't regret not doing that. Two years of revenue on a product with a known expiration date is a job, not a company, and I'd have spent every one of those months either in denial or in a panic rewrite.
What I'd do differently
Three things, and none of them are "don't build on platforms." I built four companies on Shopify. It's the best distribution I've ever had access to.
Ask which layer you're actually on. There's a difference between a product that uses a platform's API and a product that is a platform behavior. LiveRecover sent text messages. If Shopify changed, we'd have had a bad quarter and a migration. Vigilance intercepted a checkout. If Shopify changed, we had nothing. Same "platform risk" label, completely different exposure.
Discount the revenue accordingly. I don't think you should refuse to build in the risky layer. I think you should know that the revenue is worth less than the same revenue somewhere else, and behave like it — take money off the table earlier, don't hire ahead of it, don't raise on a multiple that assumes it's permanent.
Read the changelog like it's about you. The checkout extensibility work wasn't a surprise attack. Shopify had been talking about where checkout was headed. I was reading it as industry news. I should have been reading it as a countdown.
Why I'm building differently now
Internet Research Unit is the first thing I've built that isn't a tenant. The data comes from across the whole ecommerce industry rather than through one company's permission slip. That's not because I've become risk-averse — it's because I finally understood what I was paying for the distribution, and I wanted to try the trade the other direction once.
Ask me in three years whether that was smart.
End of file
If this was useful or you think I'm wrong about it, tell me: @dennishegstad.