Tabs Migration Report

How it started / How it's going

It’s been a month since I changed platforms from Substack to Beehiiv so let’s look at how it started and how it’s going. Normally this would be a subscriber-only Friday post but (a) I ran out of time on Friday so now it’s an élite Saturday post, and (b) I know there are a lot of other ‘sletterers considering a move so I’m gonna leave it public. But paid subscriptions are always appreciated!

The Migration Itself

I took a couple weeks off over Christmas and spent time noodling my way through the migration. It was nice not to have a tight time frame to get it all done, because it let me poke through a lot of settings screens, fiddle with design, and read up on stuff like DMARC. But I could have done the whole thing in a day if I had to. The main things people have asked about are:

  • Migrating the email list: The easiest part. Export a .csv from Substack, import it into Beehiiv, done. My export list was about 40,000 subscribers, and after importing it my initial list in Beehiiv was a little over 37,000. So Beehiiv did scrub it pretty significantly. This list goes all the way back to the original Tinyletter in 2013, so I have no trouble believing there were three thousand-some invalid emails on it. I’ll talk more about list size, growth, deliverability and open rates below.

  • Migrating the content: Also very straightforward, if not entirely perfect. Substack gives you an export that consists of posts as HTML files and a list of their metadata, and Beehiiv imports all this directly. That went smoothly, but there are a few things that either don’t import right or that Substack doesn’t export. Comments are one—because they rely on user accounts I don’t think they‘ll ever be transportable. C’est la vie. Substack also doesn’t export author info, which is annoying when you have many collaborative posts. On the import side, Beehiiv seems to have dropped all the links and alt text on images, lost some embeds, and it doesn’t import footnotes, all of which are kind of a bummer but not the end of the world. Post URLs match the Substack URL pattern, so (since I use a custom domain) all my existing links in Google and cross-links in Tabs itself still work, which is great. Subscribers-only posts are still subscribers-only, but the inserted paywall location doesn’t import, so they’re just fully paywalled now. There might be one or two more little things but that’s what I remember at the moment.

  • Migrating paid subscriptions: Both platforms use Stripe for paid subscription management so this should be pretty easy but I struggled with it. Beehiiv has a web tool to migrate paid subscribers, but it kept glitching out for me. I couldn’t get through the whole process without a timeout or a “Something went wrong!” error. What I should have done was wait for a support engineer to help me or just let them do it for me. What I did instead was, when a support engineer got me as far as the last “Ok do it!” page of the process, I went ahead and did it, and ended up migrating a snapshot of paid subscriptions from December 23rd. Unfortunately I did this on January 2nd. So anyone who had renewed or canceled in between those dates, I had to manually repair their subscription in Stripe. There were about 200, and it was tedious but ultimately not difficult once I figured out what happened. Because there is some wild misinformation out there, let me make it clear that I didn’t “automatically lose at least half [my] paid subscribers,” or like, any that I know of. Subscriptions migrate from Stripe to Stripe, and even if there are glitches, there are plenty of records to find them and tools to fix them.

  • Disconnecting Substack from Stripe: This was no problem for me but Ryan at Garbage Day had a whoopsie with this so I want to note exactly what I did. Once the paid subscriptions were all migrated to Beehiiv, I emailed [email protected] and told them “I need to disconnect Stripe from my Substack account and delete the existing subscriptions without refunding them.” They wrote back and confirmed the request, and I said yes do it, and they did it. Ryan asked them to disconnect without refunds, which they did, but they did not cancel the subscriptions, so he ended up briefly with duplicate subscriptions for everyone, which is obviously not good. I believe Beehiiv was able to repair it for him, so good on them. But be very specific in what you ask for!

Those are the high points. There are a lot of settings, and you can mess with design quite a bit if you want to. The design options are a lot more extensive than Substack. The directions for moving my domain over were very clear and that all went fine.

How It’s Going, One Month In

Casey Johnston migrated She’s a Beast / Ask a Swole Woman, the official weight lifting newsletter of the Tabs discord, from Substack to Ghost quite a while ago. As she has been in many other things, she was an inspiration to me to stick with it when I got annoyed and wondered if this move would be worth it. After my first newsletter off Substack she sent me a very nice congrats note and told me something that I’m gonna put in a big beautiful pull quote because I have thought about it every day since:

It is no fun and will be choreish for a bit but soon enough you will be rolling around happily in the 10% cut Substack no longer gets :)

Casey Johnston

As usual, she was right on both counts.

Choreish:

First there was the paid subscribers glitch. It took a while of investigating individual reports from people who should have been subscribed but weren’t to figure out what happened. I fixed a handful of them ad-hoc until I found a search in Stripe that gave me the full list, and then it took about two hours of clicking to fix the rest.

Another thing that quickly became clear is that the different revenue models of the two services change the way they think about support. Beehiiv charges me a flat rate (about $1000 a year) to host this newsletter. So their customer is me, and the person they offer support to is me. If you, the reader, contact Beehiiv support, most likely they’ll ask you to get in touch with me first. Substack, by contrast, takes a cut of each subscriber’s payment. So each paying reader is a customer of Substack, and I as a newsletter writer was something more like a sales affiliate, albeit an unusually well-compensated one by affiliate revenue model standards. In keeping with this relationship, Substack offers support directly to any reader.

So the upshot is that on Beehiiv, I am definitely doing more customer support. Anyone who has a deliverability or subscription problem reaches out to me, and I triage and escalate stuff to Beehiiv as needed, while doing all the reader support communication myself.

At first it was a lot! New platform, subscription glitch, people needed to figure out how to log in, I didn’t have as good a grasp on how the platform worked yet, and any time there’s a software change everyone gets a little hypervigilant for a while. The wonderful people of the Tabs discord handled most of the first day tsunami of “where is my account / how do I log in / did I get migrated properly?” questions, because they are the absolute best. Now, a month in, I probably handle one or two subscriber questions a day. It’s not a crushing load, and I did frontline web software support for years, so I don’t mind it at all. Please if you have any issues, do get in touch! I’m here to help. You can reply to any newsletter. But that said, it‘s noticeably more work than it was at Substack.

The other thing that’s clear to me is that Beehiiv, founded in late 2021, is a newer and less “finished” product than Substack, founded in 2017. Seems obvious when I say it that way, but it’s easy to compare one piece of software to another and not take into account its stage of life. A platform that’s barely two years old naturally hasn’t had the kind of thorough edge-case detection and load testing that a six or seven year old platform has. So I will say that Beehiiv has some edge-case-y issues and glitches here and there that will probably be ironed out fairly soon but can in the meantime cause some extra support work.

Rolling around happily:

The upside to Beehiiv’s customer being me is that their incentive is to make me happy, not to encourage my readers to adopt their walled-garden app or join their Twitter clone or whatever. And this shows in the editing and composition tools, which are by far the most polished and featureful part of the whole platform.

I write directly in the CMS like a true sicko, and the editor I work in every day becomes an extension of my brain. So my biggest worry was that changing editors would mess up all that muscle memory and make it a real slog to produce Tabs every day. That absolutely didn’t happen. I had to re-train myself on a couple of shortcut key combinations but overall I like the Beehiiv editor more than Substack. It has the ability to make individual blocks free-only or paid-only, and toggle them on or off for web vs email. It has a lot more options for colors and backgrounds, layout, including multiple columns, tables, font sizes and styles, different kinds of blockquotes. You can easily use it to just write a blog entry in text, but it’s also capable of quite a bit more advanced design. I’ve been playing with some of these features here and there, like Thursday’s interior monologue segments.

The 10% raise

This part is literally true: my gross income in Stripe for January is up 13.1% compared to January 2023. My net income, which is gross minus Stripe fees and platform fees (10% on Substack vs. 0% on Beehiiv) is up 24.5%. So the math do be mathing—it’s actually a little more than a 10% relative increase in what I take home, probably due to Stripe fees being a slightly variable percentage.

Obviously a guaranteed ten percent raise is wonderful, and I assumed that whatever subscriber losses I suffered in migrating would at least be offset by that. But in fact, as you can see, paid subscriptions are significantly higher since the move. There were about 175 new paid subscribers in my first two days on Beehiiv, which looks to me like a direct measure of the demand that was being suppressed by potential customers not wanting to pay for Substack.

That’s a great result, and if that’s all that happened I’d be thrilled, but paid subscriber conversions have remained consistently higher than I would have expected, and higher than I was seeing on Substack for the last several months. New subscriptions are up almost 300% this month vs. January 2023. The initial spike accounts for about a third of those, so day to day for the rest of the month, new paid subscriptions are about double what I would have seen last year. I have no explanation for this, but I like it. Anecdotally I have heard other new Beehiiv transplants say that they’re seeing the same thing.

However, all is not yet perfect

Weirdly at the same time as all this paid subscriber growth, my total subscription list has trended downward for the entire month. This is very anomalous! Honestly I’ve tracked list growth pretty attentively since 2013 and this is the longest downward trend I think I’ve seen in that time. Here's the last four weeks:

A subscriber chart showing the list decline from 37,146 on Jan 07 to 36,566 on Feb 03.

It’s down about 580 over four weeks, and generally seems to be leveling off, so I’m not overly concerned. I am gaining new subscribers each day, I’m just currently losing slightly more each day too.

One big reason I’m not that worried is that I’ve seen something like this before. When I brought Tabs back in 2021, I imported the subscriber list from Tinyletter, which was at least seven years old by then. It took a full year of gradual churn before the line started consistently going up. Here’s the all-time growth chart from Substack:

A subscriber chart from Substack showing a steady list of about 25,000 from Dec 17th 2020 through January 2022, then steady growth after that to about 40,000 on December 2023.

It was basically flat at 25k for a full year. In all that time, I was also gaining new subscribers every day, and losing slightly more or slightly less. My theory then, and my theory now, is that a new platform and a new “from” address riles up everyone’s filters and lots of people who had been receiving the newsletter but not reading it are suddenly seeing it in their inbox for the first time in years, and hitting “unsubscribe.” I’m not actually losing readers, just getting the news that someone had stopped reading some time ago. I’ve heard from both Garbage Ryan and Marisa Kabas that they’ve seen a similar decline in free subscribers, which is also kind of reassuring. Watching that line sit there dead for all of 2021 was a bit of a white-knuckle experience but we pulled through. I am confident that it’ll be fine here too. Of course it doesn’t ever hurt to:

Deliverability, open rates, etc.

I don’t put a lot of weight on these numbers, because at this point open rate is kind of a happy fiction of the email industry. But for whatever they’re worth, my open rate at Substack was virtually always about 39%. My initial open rate at Beehiiv was better than that, with a little more variability. It went as low as 44% and as high as 51%. I changed my sender address to my own domain, so now the newsletters come from [email protected] (put it in your contacts!), and as soon as the initial warmup period for that sender ended (meaning all the emails are coming from that address now instead of just a percentage), my open rate dropped measurably. For the past two weeks it’s been more like the 35%-38% range it was on Substack. I believe that it probably just wasn’t a gradual enough warm-up, and Gmail in particular seems to like putting me in spam lately.

It does seem to be improving gradually, and Beehiiv is looking into whether there’s anything else to be done. I guess my advice is if deliverability matters to you, just use the generic Beehiiv sender address. That worked great when most of my messages were coming from it.

But what about Ghost?

I don’t have any detailed advice for you about Ghost or Buttondown or any other newsletter platform. My general opinion is: if you just want to send an email newsletter and you’re not running a small content business, Buttondown seems fine. If you want more than the basics, evaluate Ghost and Beehiiv and see what appeals to you. I think they’re both good and they have different pluses and minuses. But I also don’t have any direct experience with Ghost or Buttondown, so ask around if you want that.

In Conclusion

I have no regrets about making the change. It’s been some extra work, but nothing I can’t manage. So far the pros have significantly outweighed the cons.

All of us who make a living doing creative work on the internet inevitably find ourselves in a partnership with some kind of tech platform. It can be hard to explain to anyone what it feels like when that partnership is misaligned or dysfunctional, but from the inside you can really feel it, and it’s such a drag on the creative energy you need to do your work. Everyone fighting an algorithm just to get their creations in front of the people who explicitly signed up to see them knows what I’m talking about. That was never the problem at Substack. But I didn’t realize how much of a drag on my enthusiasm the repetitive cycle of knowing the founder posted something stupid again because I got a new flurry of cancellations had become, until it wasn’t my problem anymore.

It’s hard to describe a dysfunctional platform relationship, and it’s equally hard to describe one that feels productive and well-aligned. But after a month, that’s how I feel with Beehiiv. It’s not a perfect product, there are some things I’m not thrilled with, but I am optimistic about where they’re headed, and I don’t have that weight dragging at me anymore of feeling like my publishing platform is out there in the world promoting bad people and bad ideas, and saying out of pocket stuff that pisses off me and my customers.

I’m definitely not here to sell you Beehiiv, but if you do decide to use it and this post helped you in some way, this is a partner link that will divert some money to me if you sign up.

God this is long, I’m so sorry. The comments are open if you have any questions.

Join the conversation

or to participate.