How to Really Back Up Your Substack (Posts, Subscribers, and URLs)



My Medium friends can read this over on Medium.
Substack has an export button. It gives you a zip file, and clicking it may falsely make you feel safe about a complete backup. It's not complete. Issue 1. And it's not all you should do. Issue 2.
With the export button, you did about a third of the thing.
Your posts are in there. But a lot is not. Let's go through that.
Export
Settings, then Import / Export in the left sidebar, then "Export your data".
You get a zip with your posts as a CSV and as HTML files, your subscriber list, and your stats. Substack's own page lists exactly those three things.
Which is useful. Posts, subscribers, stats. But some things aren't mentioned. Notes aren't there. Neither are comment threads or drafts.
I pulled mine to look at it properly. Three things at the top level: posts.csv, email_list.burk.csv, and a posts folder. That folder holds one HTML file per published post, named with the post id and the slug, plus two small CSVs for every post that went out as an email.
The HTML files are not pages. They're body fragments. No html tag, no head, no title, no date, no author. Out of about 1,100 files, not one carried a title element. Titles, subtitles and dates sit in posts.csv instead, matched up by post id, so turning the zip into something readable means joining the two yourself.
Drafts get another treatment. Mine show up as rows in posts.csv with is_published set to false, and there's no HTML file for a single one of them. You get the title of a piece you never finished. Not the piece.
So the zip is a copy of your text. Good to have. Just don't confuse it with a copy of your publication.
There's no official API for any of this either, so it stays a button you click. I built a small command line tool that talks to Substack's internal endpoints for drafts and Notes, but the export is not one of them.
Images
The export contains no media at all. The HTML files still show your images because they link back to Substack's servers, so everything looks…