Tools for Online Speech logo
by Jacob O'Bryant

Return of the Biff

My experiment of sharing good articles I’ve read weekly hasn’t really worked since I still don’t actually read articles very consistently. New experiment: I’ll send this out once or twice a month and just give some quick updates about stuff I’ve been working on. I do actually work sometimes, so this should be a piece of cake.

The Sample (

Several exciting things happened last month. We started out with a bang when one of our publishers told me he was having trouble importing his subscribers into Substack. Long story short, when Substack says “you own your list,” they mean “you own your list with an asterisk,” and the asterisk part means that in certain situations they will block you from importing subscribers.

Here’s what happened. By default we use a “mechanical turk” approach to integrating with newsletter platforms: when someone subscribes to a newsletter from within The Sample, I go to the newsletter’s signup page and paste in the person’s address manually. (In case you’re wondering, why yes, I am very tired of filling out captchas). Usually, Substack does not use “double opt-in,” i.e. as soon as you hit the “subscribe” button, you’re on the list—no need to go click a confirmation link in an email. However, Substack will sometimes silently send a confirmation email if the signup looks fishy. Evidently ~50 Substack signups per day coming from the same IP address looked fishy, because in mid-Decemberish these confirmation emails started getting triggered a lot.

The kicker here is that if someone receives a confirmation email and doesn’t click the link, then Substack puts them on a block list for your newsletter. If you try to import them via a CSV file, they’ll be skipped. So Substack users who joined The Sample were in a situation where some of their subscribers—some of whom they got from us via paid promotion!—never made it on to their list, with no way to fix it.

So that took most of a week for me to clean up. Fortunately most people were unaffected and I only ended up refunding $200 or so.

Other than that, I’ve added a bunch of integrations for newsletter platforms that actually have APIs (unlike Substack), and starting tomorrow I’ll be making a handful of changes to the product which I hope will boost retention.

We’ve also been continuing to mess around with Facebook ads, and things are (finally) looking great. Our cohort of Facebook leads from last week costed $1.45 per signup on average, and the revenue per user for the previous week is already up to $1.44. If we keep getting numbers like those for future cohorts, we can start dumping all the money we can into Facebook ads.

We also took a team photo.

Biff (

Biff is my Clojure web framework which I first released almost two years ago, and upon which The Sample is built. I do a big release for it about every 8-12 months, but other than that I haven’t spent much time on trying to get more people to use it because I’ve been mainly focused on my own business.

However that has felt like a bit of a shame since I think Biff has, in my humble opinion, the potential to have a large impact on the Clojure community. There are various other potential benefits too; in general, it’s felt like a very “important but not urgent” category of project. Now that the business is almost beginning to stand on its own wobbly two feet, I’ve started to spend Fridays + some time over the weekend working on it. I’m partway through another big release, and going forward I’m planning to continue spending a day or so on it per week. (I’ve got some dank not-yet-public announcements to make about this soon).


Our daughter is over a year old now. She can walk while hardly ever falling down. Sometimes she goes into our room and plays peek-a-boo by opening and closing the door while we stand in the hallway. She likes to eat toast with avocado on it.


  • I read Meditations on Moloch for the first time and it gave me the heebie jeebies. Slaying Alexander’s Moloch was a good counterpoint to it though and made me once again feel comfortable sleeping with the light off.
  • The housing theory of everything, which argues that a lot of today’s societal problems could possibly be fixed by just building more houses.
  • HTMX. A big part of the Biff release I’m working on is removing the SPA/ClojureScript part and replacing it with HTMX. It, along with its companion project Hyperscript, lets you keep the simplicity of a server-rendered app while still supporting enough interactivity for most things. See also Hotwire and Phoenix LiveView. I’m excited about this space. It also looks like the HTMX author is now getting paid to work on the project.

Published 7 Feb 2022

I write an occasional newsletter
about my work and ideas.

RSS feed · Archive

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.