It Might Be Time To Migrate Your Hashnode Blog
Open Source Tool to Extract Metadata & Images Missing in Export
Part of the Markdown Mastery series

When I started my blog about 4 years ago, I compared a bunch of different platforms, and eventually chose Hashnode because it was the only Markdown blogging service that offered custom domains on the free plan. And for the last 4 years I have had no regrets. It's been a great platform and every interaction I've had with the team has been positive.
However, in the last ~6 months, a lot has changed:
- No post on LinkedIn or X since January 2025
- No updates to change log since November 2024
- No Newsletter since October 2024
- DevRel/Community manager left around same time newsletters stopped
- Ten's of support forum posts >30+ days old, with no reply from support
- New issues with Google indexing, multiple users reported, no word from support
- Working features being deprecated (custom CSS)
I love Hashnode and I truly hope the company turns things around. But I've put a lot of work into my blog, and I'm not waiting to find out how much worse things are going to get. Migrating a bunch of blog posts on short notice is not something I want to deal with, so I'm making the jump now while I have time to plan things.
Ok, enough about the state of Hashnode. I hope I'm wrong, but in case I'm not, here's how to back up and host your Hashnode blog somewhere else while there's still time.
The Problem(s)
It's not just an issue of finding a new platform to host your blog. For me, I have a LOT of links all over the internet, on social, in other blog posts that reference each other, in dev forums, and so on. Maintaining the exact same domain and slug for the URL is critical for SEO.
That really narrows down the available choices, especially if you're looking for another free platform.
To complicate things, the Hashnode blog export does not contain your actual images (url to Hashnode CDN only), or the tag or series names (only IDs). So even with your Hashnode JSON export, the images and tag/series names would be lost if the Hashnode servers go down.
Exploring New Solutions
This weekend I explored a TON of different options for new blog platforms, including many free and paid cloud solutions, as well as open source, self-hosted options.
Requirements
- Free and preferably with cloud hosting provided
- custom domain
- custom post URL slugs (/yoursite.com/title-of-the-post)
- drag-and-drop image insertion, and hosting Search Results
- ZERO ❌
I was not able to find another free platform with custom domains and slugs, and drag-and-drop images in the markdown editor.
There is no solid alternative to Hashnode, so you have to compromise on something. This likely means either paying for a service, or hosting it yourself.
Eventually I arrived at the decision that (for me) a Markdown => static site with Eleventy was the best free option because it met all the URL and domain requirements (compromising on the cloud hosted editor/image hosting). I even vibe-coded a Frankenstein app that converted my Hashnode blog exports to 11ty format, downloaded all the missing info from Hashnode and built the site, then deployed it to Vercel.
I wanted to share the solution, but then I realized not everyone migrating away from Hashnode is going to want to host their own 11ty blog and use GitHub/Vercel to deploy. Some might want to pay for Conteltful or another service that meets all the other requirements, and avoid self-hosting. However, if Hashnode goes down, we're all going to need those images and metadata that are missing from the Hashnode export.
Separation of Concerns
The first half of my vibe-coded solution would have been useful to all Hashnode users. It downloaded the missing images, and names for tags and series, so you have all the data to import into any new platform. I decided to build the Hashnode exporter as a separate tool for everyone, then work on my own solution for hosting the blog in my platform of choice. That way anyone can use the same export tool regardless of where they choose to host their blog next.
Editor Writing Experience
Eleventy only provides the Markdown to Static Site generator, but not a Markdown editor with drag-and-drop image insertion and hosting. I looked at a bunch of options and couldn't find anything free, so I realized the writing experience would have to be handled in a different tool.
Again I looked at online Markdown editors (even if they didn't provide the public hosting part) but nothing fit. But when it comes to writing Markdown with an installed application, Obsidian is about as good as it gets.
Local Markdown in Obsidian to Online HTML
The solution I came up with is to write and edit posts with Obsidian locally, providing the best possible Markdown writing experience with drag-and-drop image insertion. Then the local Markdown and image files can be pushed to Git and auto-deployed to an 11ty site, or any other Markdown-based static site generator. Obsidian also offers a paid plan for publishing notes as public websites, allowing you to skip the Git integration.
Hashnote-to-Obsidian Converter
Regardless of where you choose to host your next blog, you're going to want to download all your current posts now, along with the missing images and metadata. This tool downloads the missing images, and uses the Hashnode API (key required) to download the tag and series names, providing a complete dataset for migration.
GitHub Repo: GreenFlux/hashnode-to-obsidian
Since I'm using Obsidian and 11ty as my writing and publishing tool, I've structured the output format for this tool accordingly. But regardless of your next blogging platform, the export data will contain all the missing info from the Hashnode export.
After Export
After running this export tool, open the export folder with Obsidian to view all your blog posts with the images backed up locally, and begin writing new posts. You'll still need to decide on a new hosting solution, but at least all your data will be backed up. And you can author new posts from Obsidian with drag-and-drop image insertion.
As I said earlier, I really do love Hashnode and I hope things improve for the company. But if you care about keeping your blog posts online and at the same URL, I highly recommend backing up all your data now and looking for a new hosting solution ASAP.
Conclusion
Things aren't looking great for Hashnode. Now would be a good time to migrate your blog, or at least export your data. This repo provides a comprehensive backup solution, but not a new hosting platform. Consider using a self-hosted blog with 11ty, or a paid service like Contentful to keep your blog online.
Note: This is the first post I've created outside of Hashnode! My blog is now running independent of the Hashnode servers, with all the Markdown and images hosted through GitHub and Vercel.