Settings

Theme

Visitor Count Visitor Count
Now Playing Voice of no Return
Notion CMS Astro Portfolio

Testing of using Notion as a CMS

blogs

The page was originally called Devlogs, but the only things I had posted there were two CTF writeups.

So, not really devlogs.

It was also just a normal page with individual posts, but I kinda wanted it to be more like a folder structure. Something where I could have writeups now, and maybe blogs, actual devlogs, notes, or whatever else I feel like writing in the future.

Something like:

Archive/
├── Devlogs/
├── Blogs/
├── Writeups/
└── Notes/

I didn't really have enough content for all of this yet, but I liked the idea of having the structure ready if I ever did.

The Notion idea

At some point I saw a website that was using Notion as a CMS.

I don't remember which website it was anymore, but that is where the idea came from.

I had heard of CMSs before and I have a general idea of what they do, but I haven't really explored them properly. I also don't know much about the different CMS services out there.

Still, using Notion for it seemed interesting.

I barely use Notion right now, so at least this would give me a reason to use it more.

Notion or Obsidian

Before deciding anything, I wanted to see what would work better for my site.

The two options I was mainly looking at were:

  • using Notion as an external CMS
  • connecting Obsidian somehow and letting the site pick up Markdown files from it
  • After asking GPT how both options would work, I realised that the Obsidian way would still end up with Markdown files being pushed to the GitHub repo.

    There is nothing really wrong with that.

    It just felt kinda boring.

    Learning how to connect Obsidian to the site might have been fun, but if the final process was still:

    Write something
    → Create/update Markdown file
    → Push it to GitHub
    → Wait for deployment

    then I didn't really feel like doing it.

    Especially in the long term.

    So I went with Notion

    The idea with Notion was much closer to what I actually wanted.

    The website code stays in GitHub, but the actual things I write stay in Notion.

    So now the process is supposed to be:

    Write in Notion
    → Check Published
    → It shows up on the site

    No new Markdown file and no pushing to GitHub just because I wrote something or fixed a typo.

    Everything is stored in one Notion database. Each entry has a type, which can be:

  • Devlog
  • Blog
  • Writeup
  • Note
  • The site reads that and puts it in the correct folder.

    This post, for example, is a Blog, so it goes inside the Blogs folder.

    The two CTF writeups I already had will go inside Writeups, which honestly makes a lot more sense than calling them devlogs.

    How it works

    I am still not completely familiar with how CMSs work in general, so this is just how I understand my setup right now.

    Notion stores the posts.

    My site connects to Notion using its API and asks for the entries that I have marked as published.

    The site then takes that content and displays it using my own design.

    So it doesn't look like a Notion page embedded into the website. Notion is just where I write and manage the content.

    Basically:

    Notion
       ↓
    Notion API
       ↓
    My website
       ↓
    Archive

    There is also a small cache in between, so the website doesn't keep asking Notion for the same thing again and again.

    Because of that, changes might take a few minutes to show up, which is fine. I don't think anyone needs to see me fixing a typo instantly.

    The Archive

    I also renamed the page from Devlogs to Archive.

    Archive just made more sense because it can hold different kinds of stuff without everything needing to be the same thing.

    Right now the structure is:

    Archive/
    ├── Devlogs/
    ├── Blogs/
    ├── Writeups/
    └── Notes/

    I don't know how much I will actually write.

    Maybe I will use all four folders.

    Maybe half of them will stay empty for a year.

    We'll see.

    For now, I mostly wanted a place where I could put things without having to decide that the entire page is only for one type of content.

    Was all of this needed?

    Probably not.

    I had two writeups.

    I could have just kept using Markdown files.

    But setting this up was more interesting than pushing another .md file into the repo, and now I have a system I might actually want to use.

    Also, this post is the first thing I am publishing through it.

    So if you are reading this on the Archive page, yaaaaay it works.

    WEBRINGS
    CATPPUCCIN
    PREV INDEX NEXT