Using Notion as a CMS
Hello, world! It’s been a while since I’ve written content for this website, but I’m determined to start writing again.
Recently, I’d been looking to integrate a simple SaaS product as a headless CMS tool for my personal website. In this post, I’m going to go through each service I considered, and conclude with my final solution.
1.
Standard Notes
This was my original integration for
heythisischris.com. I fell in love with this service because it was a simple end-to-end encrypted note keeping provider which allowed one to operate a public blog with an RSS feed. I quickly found, however, that this product had many limitations. First, there was no developer API access- users had to rely on an antiquated RSS feed written in XML to integrate posts with their website. I was not interested in parsing an RSS feed for my website. Second, the product had a buggy interface which relied on third-party rich text editor plugins. These plugins were unpredictable and did not operate well in the browser (or at all on mobile). And lastly, I stopped using the service altogether, and instead focused my energy on developing and using productabot as my primary note-taking tool.
2.
Airtable
I love using Airtable. It’s one of the best SaaS products I’ve ever used, hands down. That being said, it’s not without it’s limitations- rich text editing is simply absent in this product. The “rich text” field only allows for the following options: bold, italics, underline, • bullet lists, and 1. numbered lists. This, unfortunately, is useless for a proper CMS.
3.
DynamoDB
I migrated my database from PostgreSQL to DynamoDB to reduce server costs and learn more about optimizing a NoSQL database schema using a hobby project. In doing so, I opened up the possibility of editing raw HTML inside of DynamoDB rows. I ended up making nearly 0 updates to my website, because, it’s difficult editing inline database rows without seeing the results on a webpage! I was discouraged from updating or adding any new content, which brings us to our final layer of abstraction:
4.
Notion
Finally, I settled on using Notion. I was originally opposed to this software because I detested the idea of separating documents into blocks- I wanted a simple text editor without any collaboration/history nonsense. Exploring the knowledge bases created at recent employers, however, changed my opinion on the matter. Notion simply has the easiest interface for creating documents. It’s simple, it looks good, it has a decent mobile app, and a well-documented API to boot!