Building a Blog on the Notion API

Sep 30, 2022

Update: it’s live. This page you’re seeing is now rendered through this latest version of my website.


I’m going to try re-implementing this site using the Notion API as a backend. I’ve had a couple of blog posts saved as drafts in various places, and I’d like to reduce the friction to posting new things here.

Remaining To Do list


Project Goals

Most Important

Nice to Have

Features

I’d like to at least keep feature parity with what’s live right now. That includes:

Renderer

Pages / Sections

Features and Fixes

Log


Monday, September 5, 10a

Ok I went for JSX instead of straight to html and that simplified things a lot. Feels like it’s halfway there now, but I need to get back to my day job for now.

Untitled

Untitled

One of the biggest unlocks is rendering notion blocks → jsx → html, instead of directly from notion → html.

Type hints in action:

Do captions work?

Do captions work?

Another nice realization is that we don’t have to implement the entire HTML spec. Only the types outlined in the Notion API client.


Sunday, September 4, 10:55pm

Untitled

Untitled


Sunday 9/4, 6pm

First version of Notion block → html renderer

Untitled


Sunday morning