All episodes

Bootstrapping DevTools with Michael Christofides

Michael Christofides tried getting clever with pgMustard's pricing — a value-based metric tracking how often people ran query plans. Customers overestimated how much they'd use it, decided it was expensive, and some spent four months unable to choose between plans. He'd have been further along if he'd just started cheap and simple.

Jack Bridger
Episode 320:16

Michael Christofides is co-founder of pgMustard, a bootstrapped Postgres query-plan tool that recently passed 100 customers and 12,000 submitted query plans, three years after launch. He previously worked as head of customer success at GoCardless and in developer tools at Redgate.

We get into why he thinks refusing shady growth tactics has protected pgMustard from support headaches he can't fully explain, why word of mouth has driven more signups than anything else despite being nearly impossible to deliberately engineer, why sponsoring Postgres-specific newsletters and events hasn't worked the way he expected, and the full story of how good pricing advice — charge more, charge for value — turned out to be terrible advice for his specific business.

The Q&A below is experimental — extracted from the episode transcript with AI. If you spot a mistake, let us know at jack@scalingdevtools.com.

Could you tell us where pgMustard is right now and what you're focused on?

It started as just the two of us, splitting our time on it — Dave's currently not working on it and I'm doing about three or four days a week. We've been going three years as of a month ago, and I recently shared that we've passed 100 customers and about 12,000 query plans submitted through the product, which helps people view Postgres query plans and speed them up. Small numbers in the grand scheme of things compared to other devtools, but I'm really proud of it.

What's currently keeping you up at night in terms of growth?

It's tempting to keep adding features — I've got 15 or 20 I'm convinced would each double the size of the business, but deep down I know that's not true. We're really marketing and distribution limited right now. I'm mostly focused on search: figuring out what people are searching for when they hit this kind of problem, getting a good blog post or documentation in front of them, and hoping a small percentage give the product a shot or remember us later. That's a lot of behind-the-scenes work that doesn't feel like it improves the product, but it does help the exact customers with that exact problem. Beyond that, a lot of content creation and editing, and trying to figure out how to be authentic on Twitter and share things that are genuinely helpful or funny — that and content seem to be the channels that have actually worked for us, so I'm doubling down on those.

The pgMustard website is notably ethical — no small print, everything as kind as it could be. Was that a conscious choice?

It's a tricky one, because some people grow quickly with tactics that aren't quite black hat but sit in a gray area. Even if someone convinced me those were the best ways to grow, I like sleeping and don't want to be kept up at night, and I want to build this for the long term — hopefully run this business for 20, 30, 40 years with a small team I love working with. I'd hate to have a reputation that wasn't straightforward, and I've convinced myself that being upfront with people earns real respect. I love brands that tell me the worst thing about their product upfront, with a privacy policy readable in a few minutes rather than 30 pages, transparent pricing, no hidden fees, and the ability to cancel yourself without phoning anyone. I personally steer away from products that feel even a little shady, and I'd feel uneasy selling one myself.

Have there been any tangible business benefits from being that transparent?

Honestly, I don't know that I've seen anything explicit, but I wonder if it's led to a lack of problems — we haven't had complaints or chargebacks, and I don't think I've given a refund yet despite offering 60-day refunds. We also get very little customer support, which in the early days of a business can actually be a good source of ideas and a pulse on your customers, so I'd love more of it. I've never explicitly connected those two things before, but it's possible they're related.

You've mentioned a lot of your customers come from word of mouth. How does that connect to the ethical positioning?

I suspect that's a huge part of it, though I'd attribute more of it to the product actually doing what it says it will do, rather than the business being more straightforward — though maybe those two things are more intertwined than I've realized. Not over-promising in the marketing copy, delivering on someone's first few experiences, maybe even something as small as noticing how quick our privacy policy is to read, might tip someone from quietly thinking the product's fine to actually tweeting about it or telling someone else. We're in the Postgres community, and I think word of mouth matters there specifically too — if you do a conference talk and you're straightforward about what you do and don't know, especially when people ask questions afterward, rather than oversell your expertise, people take note of that and recommend you for other things, whether that's your next talk getting accepted or getting recommended for something else behind the scenes.

You previously worked as head of customer success at GoCardless. Did some of this approach come from there?

GoCardless often gets described as fintech, but they were very Stripe-inspired in how much attention they paid to developer documentation and developer experience. I probably learned more raw user-experience and usability skills at Redgate, a devtools company for SQL Server where I ran a small team, but at GoCardless I saw a different level of execution — an exceptional team focused on developer experience, even though the developer wasn't really the buyer, since they're more on the fintech side of that equation. What I really picked up there was the customer side: talking to customers, understanding how they use the product, what they like and dislike, why they might churn, which parts of the roadmap excite them. A friend recently asked whether our customers were 'aggressively self-service,' which is a perfect phrase — Redgate was much more self-service, GoCardless had more hand-holding, probably because they're more central to a company's payment stack than a productivity or education tool would be. I did some customer calls at GoCardless, but I think the more useful skills came from sitting in on sessions with professional UX researchers at Redgate — watching someone use your product for the first time, trying hard to say nothing, asking what they're thinking at every stage, and taking the blame for every problem they hit.

Stepping back, what's actually worked and not worked for pgMustard's growth?

Starting with the positives: content marketing has worked. We wrote blog posts mostly meant to support the product with performance advice, and they started ranking for search terms exactly when people need the product. I also spent a few months a couple of years ago writing Postgres EXPLAIN documentation, because I found myself constantly googling for specific terms, trawling Stack Overflow, or ending up in the Postgres source code — which is well commented but still hard if you don't read C. If I found that intimidating despite being used to it, I figured other people encountering EXPLAIN for the first time, or only once every few months, would find it even more so. That documentation has ranked over time, which makes sense since developers with a problem either Google it or ask a colleague. On the colleague side, it's much more about word of mouth, and the strategy there is genuinely tough — we don't have much money to sponsor things broadly, and it's hard to target exactly who has performance problems with a certain amount of data, since not everyone does. What's worked best has been people with a few thousand followers tweeting about us — we noticed signups in the days after convert at a much higher rate. I don't know how to authentically encourage that beyond making a good product and treating people well; incentivizing it through affiliates or shadier tactics is easy to smell coming and doesn't work long term.

And what hasn't worked?

I tried Google Ads for a while, reasoning that since most of our direct competitors are free and wouldn't be bidding, it'd be a good opportunity. But Google set a minimum price of about a pound per click despite the lack of competition on those terms, and combined with not wanting to track people for privacy reasons, we couldn't even measure whether it worked, at low volume anyway — plus how many developers even see ads through their ad blockers. I also tried sponsoring an event and a newsletter, both Postgres-related, which sounds sensible, but in hindsight the people who like pgMustard most tend to self-identify as full-stack developers whose community is Rails or Django rather than Postgres specifically — the ones deep enough into Postgres to subscribe to a Postgres newsletter don't necessarily overlap with our actual audience. No obvious success there so far, though maybe that's in our future.

What general lessons would you give yourself starting again, or another devtools founder?

Pricing is the thing we've messed up the most, for the longest — based on trying to avoid mistakes everybody warns you about. We'd both been in software for close to ten years, I'd been a product manager and done pricing projects, so we thought we knew the advice: charge more, charge for value. In hindsight I think that was bad advice for us, or maybe in general. We started with monthly and annual plans, a seven-day free trial, and prices around €50 a month or €500 a year, reasoning that a second or third user on a team gets diminishing extra value versus the first. Someone subscribed to the annual plan quickly, which gave us false confidence, but it took months to get a second customer, and feedback showed people with only two users didn't want to pay for ten. So we got clever and switched to a usage-based value metric, tracking how many query plans people submitted, moving the trial to a usage limit instead of a time limit — which made sense on paper but backfired, because customers had no idea how often they'd actually need the tool and consistently overestimated their usage while assuming each use delivered less value, which meant the price felt high for perceived low value. At least two prospects spent around four months unable to decide between plans and never converted at all. So we scrapped that, moved to a cheap, simple per-user annual-only price — not typically advised either, but it suited a tool that isn't useful to everybody every month, and gave us predictable revenue. January through March of 2020 were genuinely good months off that pricing. All the prevailing wisdom — charge more, charge for value, charge monthly — turned out to be awful for us, and I think trying to reason from first principles hurt us more than if we'd just started cheap and simple from day one. Every time your pricing or business model deviates from the norm, it puts doubt in someone's mind, and the faster they can explain it away as normal, the better. Starting cheap and leaving money on the table for your first hundred or thousand customers isn't really a problem if your business only becomes viable at scale anyway — that's a good problem to have, and there's a real chance the common advice to charge more mostly reflects survivorship bias among people who happened to succeed despite, or because of, starting cheap.

Keep listening