Redesigning My Website with Notion as a CMS

A few months ago, I realized that my website no longer represented my professional style. It had a childish design that felt out of touch with the image I wanted to convey. I knew I needed a fresh, modern look that reflected my evolving style, but I wanted to do it with minimal coding.


While I was exploring productivity tools, I came across Notion and quickly saw its potential beyond just managing tasks. Some users were even leveraging Notion as a Content Management System (CMS) for their websites, through tools like Super.so. Though Super was useful, I felt it didn’t offer the flexibility I needed.

So, I decided to take things into my own hands by building a more dynamic solution that fully integrates Notion with my website. This blog post will walk you through how I did it, from setting up the database in Notion to fetching content through the Notion API and displaying it on my site.

Step 1: Deciding on the Fields

Before diving into the integration, the first step was designing how I wanted to structure my website’s content in Notion. I created a Notion Database with all the essential fields I needed, such as:

  • Title: The name of each blog post.
  • Slug: A URL-friendly version of the title.
  • Content: The main body of the blog post.
  • Tags: Categories to group content.
  • Published: A checkbox to indicate whether the post should be live.
  • Image: A link to the post’s featured image.
  • Date: The date the post was published.

Step 2: Connecting Notion's API

To pull content from my Notion database and display it on the site, I integrated