Migrating Blog from Notion to Hugo
I have been using Notion for my personal blog. Start with using premium paid service Super.so when it still in the early bird. Super is great, it just works, that's what I want, but when it gets popular I don't have the luxury to pay 12$ per month for my 10-visitor-per-week blog. Then, I start searching for open-source alternatives and found this repository on Github. Just need an hour of configuration and my blog is live without paying a dime!
The issue is because it is deployed on vercel free, and 500 pages on my personal blog, vercel 10s timeout limit background worker cannot fetch all the updated data because there to many pages. So, i need to trigger build everytime i post something new. Also with the 10-second timeout limit background process, the tools cannot generate sitemap.xml for the blog because the pages need more than 10-second to generate. Google never knew my blog.
After 1 year keep using it, for this month, I insist on migrating my blog to static-site generator. And my choice is Hugo.
Apparently, I don't have any particular reason why I choose Hugo over another alternative like Gatsby.js and etc. Maybe it was just an impulsive decision because currently I'm working with Golang in my workplace (and I love it), so Hugo that builds using Golang become my choice. If you want to get any other good comparison, I think there is already good information out there.
So the process of migration we can separate into these step:
Create Hugo project, and import themes
Configure the themes
Export Notion pages into markdown
Change every markdown metadata into Hugo format
Copy new formatted markdowns
Publish and done!
For step 4, I create a Node.js script to do the job. You can steal the script here:
Basically what the script does is replace all Notion markdown metadata and reform it into Hugo-supported metadata.
And it is done! My new blog has new skin, and it is blazing fast. Also super sleek layout thanks to this theme. Check my blog here:
After writing this post, I learned that there are already open-source solutions to convert Notion blog to Hugo flawlessly. Here are some of them, you can try it yourself!