# Introduction

Notion CMS helps you and your Agents use Notion’s API to launch simple websites in seconds, or complex sites in a matter of minutes

![](/assets/notion-files/23e927f3cce94cceba7e0e064e3e38fc)

# Why?

Notion is awesome. But the API is cumbersome. **How** about we think of a way to simplify the API, and make it more manageable, improve the DX and enable Notion to be the default starter CMS for any new side project you’re launching? [^3]

[^3]: There is lots of cool stuff you can do with this, but there’s even more now that Notion is heavily invested in automations. For example, you could create a blog database, where every record has a button that invalidates the ISR of your page. Allowing you to cache pages forever, work on editing them, and only revalidate when you’re ready to re-publish. You can combine this automation to also update last revalidation date to the page. This is exactly how this page works.

# How?

While Notion’s API is complex, it’s very well specified and structured. Most of the time, you only need a subset of values, properties, or otherwise information stored in it’s databases or pages.

Additionally, it has a great editor. But for programmers (and LLMs[^1]), markdown or html are the most convenient forms of rich text.

[^1]: append /llms.txt to any route in this website and see what happens 🍿

**What** about creating *Yet Another Notion API Wrapper *[^2]?

# What

This is Notion API wrapper*,* that re-structures their API, and, instead of ditching their structure, it

1. combines it with another two layers, gradually reducing complexity.
2. provides a simple, familiar, **strongly typed**, api to query the database `query("blog").filter("Published", "equals",true)`
3. provides built, convenient methods to convert content to markdown or html
4. provides a simple layer for media management so you can store/cache your assets easily




[^2]: I’m tempted to call this library YANAW. I’m sure it would have the same traction: 0.