https://www.coryetzkorn.com/blog/how-the-notion-api-powers-my-blog

Hello and welcome to the new coryetzkorn.com! If you’ve been following me for a minute you may notice this site is actually four years old, which is a long time in internet years. I thought about redesigning it, but ultimately felt the design was still serving its purpose. Instead, I decided to refine both the design and the tech stack powering it.

The change I’m most excited about is my new Notion-powered blog. There’s no longer any raw markdown, no content management system, and no code required to publish a post. This is because my entire blog is now a single Notion database.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/94fa4500-bcb0-4562-82bb-f9de1ad3279b/9d1084f6-03d7-4aac-8275-8d65102d2cbd.png

The Notion database powering my new blog.

Publishing a post is as simple as creating a new entry in the database, filling in a few database properties, and writing the post. That’s it!

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/dce2a6cf-e6da-483a-8817-d25cc47bdfa1/176aead6-d792-4c73-9cb4-356e77af7aa5.png

This post lives inside Notion, too. How meta!

If you’ve ever maintained a blog, you’re probably familiar with how quickly things get out of date. Two years pass without a single post and you begin questioning why you even have the thing. Tweeting is so much easier. And you get likes!

The main reason I’m excited about my new Notion-powered writing experience is because I think I’ll actually use it. I spend all day in Notion (and work at Notion) writing docs and filing away ideas. Now my blog will live in the same tool. If something is worth sharing publicly all I have to do is drag a few blocks into my blog database and — BOOM — we’re live!

Now let’s dive into how this all happens. And fair warning, my implementation does require some rather advanced JavaScript programming, but there are also no-code solutions out there if that’s more your jam.

Creating the Notion Database

I began by creating a table-view Notion Database to represent my blog. Next, I defined a set of database properties to hold important metadata. The properties I added were: