Version 4: Welcome to the blog!
Why?
I used to seldom write on Medium and have a few viral articles. But as I aim to be a more frequent writer, I decided to move the blog here!
Some History?
Well, I am a software developer especially crafting web experiences like these. By the way, I previously also had my blog about four years ago; I built that by watching a Django tutorial (back then, I was happy with Python, but now I'm not too fond of it).
I also had zero understanding of rendering and did not know any frontend library back then—a noob, I would say. But now, I know what I want to do and how to do it better than at least the noob.
How did I build this?
I would not give it out if you want the exact code. But all the major project dependencies are listed at the bottom of the page.
The only reason:
- It is a custom solution.
In a nutshell, this how the architecture for a blog powered by Notion would look like!

Notion as a CMS is super powerful, and some startups have made it their primary product.
The best part about using NextJS is that images, fonts, and most assets are optimised. I also have used the script by Guillermo de la Puente to move the Notion hosted images to Cloudinary! Do check his post on a similar migration, that post and some of the code has been a good inspiration. But mind you he built it with NextJS’s Pages Router whereas I have used the App Router.
Notion hosted images have short lived URLs (1 hour) meaning the images will be broken if you use SSG (Static Site Generation).
Upcoming Features
There are more features I am iterating on for V2 or V3.
Preview and Live Modes
Filtering posts based on tags and dates
Trigger the rebuild on a new blog post (NextJS provides an ability to revalidate a path)
Paywall (How can I paywall some of these blog posts)
Newsletter Subscription
Support reactions
I do guide on how to learn React and build out such applications for a small fee at topmate!.