Here: this website
This website is an experiment using Notion as a CMS. This allows me to have a much better editing experience, which should encourage me to write more content and keep the content more up to date.
The process for updating content is easy as editing in Notion and triggering a rebuild/redeploy (at least in theory).
The site is built using Astro, which statically generates the site and helps me minimize the amount of JavaScript that’s sent to the client. Fun fact: everything on this website should work without JavaScript.
You can find the source code to this site on GitHub. Feel free to file issues if you find a bug.
Below (the divider) is what I used to test the Notion parser that I “wrote” (copied a lot of code from existing solutions) to convert Notion blocks to Markdown, which is then rendered using Astro’s built-in support for Markdown (underneath the hood, it uses remark-rehype
).
Milestones
Some tasks that I’m proud of completing while building this website:
- Wrote a collection of scripts to parse Notion blocks to Markdown + made sure everything was accessible!
- Attempted to make the website SEO friendly (it still ranks really low in searches rip)
- Iterated a ton on the navigation bar to make it work without JavaScript (and spent a lot of time reverse engineering apple.com’s nav bar)
- Migrated content architecture to local MDX files
Tasks
✅ done
Ideas
- Maps of favorite places to go in NYC
- Funner buttons and UI
- Reviews
heading 1
heading 2
heading 3
rich text testing bold text italic text underline text strikethrough text all four styles
rainbow text
red pink purple blue green but override to be red yellow orange brown graydefault
colored link text but this is also colored text
colorful list text:
- red
- pink
- purple
- blue
- green but override to be red
- yellow
- orange
- brown
- gray
- default
interesting edge case:
what if the entire paragraph is italicized what if the entire paragraph is boldedmight mess with line breaks
and also,
what if the entire paragraph is italicized but with a link insideok but what about if there’s a less than symbol: <3? or greater than: >3?
paragraph text
- unorganized list
- another item
- another item
- nested item
- organized list
- another item
- nested item
quote
- nested item in quote
- hello world
- hello world 2
inline code block
this is like code thingy
function parse() {
return "hello world";
}
some summary
some details about something
who knows
E = mc^2
<span class="!bg-gray-200">hello
hello
hello</span>
tables
without column or row headers
column a | column b | empty stuff |
hi | hello | |
bye | goodbye |
with column and row headers
simple table | a | b |
---|---|---|
1 | a1 | b1 |
2 | a2 | b2 |
links
testing links in the paragraph. (this stuff in the parentheses) should link to robinhood.com (as should this link).
todo list
multiple images and files below
PDF file containing EQ settings for the Sennheiser HD599 headphoneshttps://soundcloud.com/herbbeatz/moving?in=kungpaogao/sets/corncorncorn