I’ve long been procrastinating building a personal site. Much because of my past experience making them. Grandiose visions of pages with cool hover animations, loaders and sleek fonts that I become bored of within a couple of months, which inevitably leads to the next big redesign or me not finishing them instead of focusing on the content.
This version though, m-w 1.1 as i’m writing this, has something else in mind. A minimal and unopinionated design (if such a thing even exists). A reliable and quick front-end that i’m comfortable with, as well as a CMS with the lowest barrier possible to use. Pure functionality over wow.
Next.js for the front-end to statically generate the pages at build time for *chef’s kisses* performance.
Tailwind CSS to write beautiful, maintainable and tokenized CSS with utility classes.
Vercel for deployment, SSL encryption and ease of use for a cowboy-programmer like me.
And lastly, but probably the core around my digital garden — Notion as a CMS.
The CMS setup
I’m using Notions public API to fetch all of my content, something i’ve wanted to do ever since I started using Notion. However, first off I was contemplating using markdown or MDX, but ditched that idea since it would require too much effort to maintain content IMO. Then I gave Tina CMS a try, since it has all the stuff i’m asking for, but had a bit of a learning curve.
If you’re considering a CMS, I can highly recommend giving Tina a shot.
To my joy & surprise, I stumbled across this blogpost written by Samuel Kraft where he pedagogically shows an example of how to use Notion as a CMS together with Next.js which sealed the CMS deal. Maybe a bit unorthodox for a CMS, but it’s exactly what I was after. Close to zero effort to maintain and add content once finished and set up.
Want to have a look?
While i’m not claiming to the cleanest code out there, I figured someone else could find my setup useful. I’m hoping it’ll last me some time to come without any major oopsies or crashes. My repository is public so just head over there and have a peek and steal / modify with pride.