I blogged around this time last year about my decision to offer a free tier in Buttondown. I was, uh, lukewarm:

And so. I’ve kinda arrived at this concept of a free tier being a bad business choice that I don’t regret. Or rather, it’s a bad choice from a business perspective, if not from a personal one.

So rest assured, Buttondown will forever have a free plan — it’s a tool for weird projects first and foremost, and I want it to be in the hands of as many people as possible.

This is an entertaining line of thought, in retrospect.

On one hand, I am much happier with the customer service burden of Buttondown’s free tier now as opposed to last year. I was miserable last year! (Well, not miserable overall — but miserable with regards to my projects.)

I shipped very little of value because I was exhausted by customer service and that exhaustion transformed into angst about working on (and thinking about) Buttondown at all.

Thankfully, things are much better this year. I have more free users (and paid users!) than ever before, but I’m spending less time on aggregate on customer service.

I attribute this positive development to three things:

  1. Extensive public documentation. I launched a public FAQ and have seeded it with a new question every time I encounter that question twice in my inbox; it is very rare for me to receive a question that is addressed by the FAQ, which is fantastic. (You worry about unsophisticated or uninterested users, and I haven’t dealt with that at all — people do the due diligence before reaching out, which I love.)
  2. A public roadmap that I can dutifully point feature requests and bug reports to as proof that its being tracked, even (and especially) if its not being worked on.
  3. Being much more comfortable with saying “no” or, even better, “yes if you spend $300 on an annual premium plan.” I have, according to the whiteboard orthogonal to my desk, raised $2,400 in 2020 by selling roadmap/papercut prioritization. These were all things that I would have ended up doing anyway, on an infinite time horizon: my goal as a person running a software application is to apply my time to the areas of highest return, and selling that time is a great way of having high confidence in that return.

On the other hand, I’m more comfortable now with getting rid of the free plan for new registrations at some point in the future. 1

I phrased this post as “paying down debt” because that’s the mental model I’ve shifted to when thinking of having a free tier: you’re taking out a loan on a bunch of potential customers and you pay interest with your time. I’ve devised a number of effective strategies on paying down that interest quickly, but it is probably close to the right time to just pay down the principal: Buttondown is growing very healthily and if I turn off the customer-acquisition-from-free-tier faucet I think it will keep doing so.

That being said: Buttondown wouldn’t be as successful as it is without the free tier. So the loan, as it were, was worth taking out.

And, as a colophon: one thing that made me feel much better about how my time is spent (which is to say, still more in Gmail than in PyCharm these days) was this post by my coworker:

Through sickness, health, and mind-numbing tedium, I’ve woken up every day for the last four years, checked email, gone through the day, checked email, and gone to sleep. This is the single best guarantee that I would deliver on the promised level of service to customers — almost all questions answered within 24 hours. There have been many, many weeks where this is literally all I’ve done for the business.

Buttondown has hit the tipping point where the average value per email I send is assuredly higher than the average value per commit. This is troublesome to my brain: I am still a person who gets a Skinner box-esque thrill from committing new features and unit tests, and it gives me a sense of peace and progress that correspondence simply does not.

My mistake was thinking that “weeks where this is literally all I’ve done for the business” was bad because it was low-value; it was bad, but not because it was low-value. It was bad because I wasn’t doing it as efficiently as I could be, which isn’t just a disservice to my sanity but to everyone involved.

  1. Important caveat, because I know many people who use Buttondown are reading this: I will never, ever, ever, ever, ever, ever kick you off the tool. 

Liked this post? You should subscribe to my newsletter and follow me on Twitter.

(I've got an RSS feed, too, if you'd prefer.)