How to back up your WordPress posts as markdown
Specter wasn’t built as a backup tool. It was built to let you edit WordPress posts from a local folder with whatever AI or editor you prefer. But because it does a continuous two-way sync between your site and a folder of plain markdown on your Mac, it ends up being one of the most reliable content backups you can have running. This guide is about that side-effect — what it covers, what it doesn’t, and how to make it boringly dependable.
What people usually mean by “WordPress backup”
There are two very different things called a backup in the WordPress world, and they get conflated in marketing copy all the time.
The first is a full site backup: themes, plugins, the database, uploaded media, the wp-config.php and .htaccess files. This is what UpdraftPlus, BackupBuddy, your host’s nightly snapshot, and a handful of other tools do. If your server is wiped, you restore the full backup and the site comes back as it was. This is the kind of backup you absolutely need, and Specter is not that. Keep your full-site backup running.
The second is a content backup: the words. The posts and pages you actually wrote. The thing that took you years to produce and that no plugin reinstall can re-create. This is the part Specter mirrors, in plain text, automatically, the moment you save.
Both backups matter. They protect against different failures. This guide is about the second.
Why a markdown mirror is a good backup of the part you wrote
A few properties that turn out to matter more than you’d think:
- Plain text. Markdown is text. No database engine, no proprietary file format, no version of WordPress to be compatible with. Open it in any editor on any operating system in any year. If WordPress disappears tomorrow, your posts still open in Notepad.
- Continuous, not scheduled. Specter syncs as you publish. You don’t have a 24-hour window where a recent post isn’t backed up because the nightly job hasn’t run.
- Local. The folder lives on your Mac. No cloud dependency, no account you can be locked out of, no SaaS that can change its pricing tomorrow. Time Machine and iCloud Drive both pick it up if you point them at it.
- Frontmatter holds the structured stuff. Title, slug, status, categories, tags, published date, modified date, featured-image URL, meta title, meta description. The fields a database would normally hold are just lines at the top of the file.
- Recoverable. If you need to restore a post, Specter pushes the markdown back to WordPress via the REST API. The same machinery that does the bulk SEO sweep recreates a post from its file.
If you haven’t connected your site yet, the connect guide walks through it. The setup is a one-time thing — Application Password, folder, done.
Make it survive a real disaster: put it in git
A folder of markdown is good. A folder of markdown in a git repository is much better. Git gives you:
- Versioned history. Every sync becomes a checkpoint you can roll back to. If you (or an AI editing pass, or a plugin bug, or a contributor) wrecks a post,
git logshows you exactly when, andgit checkoutbrings it back. - Off-site copy. Push to GitHub, GitLab, Bitbucket, or a private remote. Now your content lives in at least three places: the WordPress database, the local folder, and the remote git host. Losing all three at once is essentially “the world ended.”
- Diffs you can read.
git diffon markdown is human-readable in a waygit diffon a SQL dump is not. You can see exactly what changed between any two points in time.
A reasonable setup: point Specter at a folder inside a git repo, write a small cron job that runs git add -A && git commit -m "sync $(date)" && git push every hour. That’s it. You now have continuous, versioned, off-site content backup that costs nothing and runs forever.
What this protects against (and what it doesn’t)
The realistic list of failure modes a markdown mirror saves you from:
- A plugin update wrecks a bunch of posts. Restore the affected files from the folder, push them back.
- A contributor accidentally deletes a post. The file is still on your Mac. Push it back.
- Your hosting provider goes down for a day, a week, longer. Your posts are sitting on your Mac. You can stand the site up on any new host and re-import.
- You decide to migrate away from WordPress entirely. Your content is already in the most portable format possible. Point a static site generator at the folder and you have a working site in an afternoon.
- An AI editing pass goes wrong. If you’re following the edit-with-Claude workflow, git history is your undo button.
The failure modes it does not cover:
- Themes, plugins, custom code. Not in the folder. Use a real site backup for these.
- Uploaded media files. Featured images are referenced by URL in frontmatter, but the binary files themselves live on your server’s media library. A real backup grabs the
wp-content/uploadsdirectory. - Database tables outside posts and pages. Comments, users, settings, custom post types you haven’t synced. Again — real site backup.
- A hostile takeover of your WordPress admin. Specter syncs to WordPress with your credentials. If someone else has those, the mirror won’t save you from them pushing junk.
The mental model
Run a real WordPress backup for the site as a whole. Run Specter for the words. The first protects you from infrastructure failure. The second protects you from losing the thing you actually made — and as a bonus gives you the source of truth you need for every other workflow on this site, from a quick edit to a full bulk SEO sweep across the archive.
That’s the trick: by making your posts editable as plain text, Specter accidentally makes them backed up as plain text. The same property that lets an AI rewrite them lets a human restore them. Both come from the same boring file on your Mac.