26 Feb - This post is a work in progress. I plan to record a screencast walking through setting up a Notion Blog from start to finish. Stay tuned ✌🏽
Notion is a workspace for "notes, tasks and wikis". I started using Notion at the end of last year. It's amazing. If your opinion differs to mine, you're probably doing it wrong. I was. The business use-cases for Notion are obvious and reflected in the templates available to start you off. What I didn't expect was the how life-changing it would be to use Notion for myself. When writing is as easy as Notion makes it, you realise that there is a lot you might like to create or store about your past, present, and future.
After using Notion for a month or so, it became an indispensable part of my workflow. Spending so much time writing was novel for me. I knew that it was directly related to the design, functionality, and emoji-friendly nature of Notion. I had seen some companies and podcasts use public Notion pages as web pages - which was appealing to me - but there was a part of me that dared to dream...
If only there was a way to publish to the web (on a custom domain) with Notion. It would remove all of the resistance I have around "blogging".
The day after I had this thought I saw this tweet by JJ Kasper, a software engineer at Zeit. I can't say that I'm surprised though. The folks at Zeit make a habit of over-delivering.
Excited to share our long-awaited Next.js + Notion statically-generated blog example with the same tech as https://t.co/HVcLCVUO5w!— JJ Kasper (@_ijjk) January 13, 2020
- Edit via Notion
- Blazing fast
- JAMstack based
- Always available
- Fully customizable
- Incremental SSG
- MIT Licensedhttps://t.co/fD2vWxq2Y6
Luckily for us, the Zeit team was looking for an alternative to writing blog posts in MDX and already used Notion in-house. JJ took on the task of reverse engineering a private Notion API, since the official Notion API is somewhere down the line in their roadmap. You can watch JJ's talk about how the Notion Blog project came to be.
The starter can be deployed in a few clicks. There are two things that fuel the blog, your Notion ID and the Blog ID, which refers to the page that will house the table of posts. Once you add these values to your project and run it the first time, a posts table will be generated automatically. The rest is as intuitive as you would expect it to be. Add a title, define your post slug, set a date for publishing and you're away.
The source code for the Notion Blog starter can be found in this Github repo:
You can also visit the official demo site:
JJ responds to open issues quickly and is always updating the code with fixes. The README is comprehensive and I was happy to get my blog up and running in minutes.
🙋🏽♀️ Someone who uses Notion for everything/anything
🙋🏼♂️ Someone who currently uses markdown to write and wants a more aesthetically pleasing/less draining writing experience (Jekyll users)
🙋🏻 Someone looking for a Wordpress alternative
I'm grateful that the Notion Blog starter exists and I want to thank JJ and the Zeit team for creating it.