Source Code for my site and blog under timomeh.de. It's built on top of GitHub Discussions with Next.js
I wrote posts about how I'd like my Blog to work and how I implemented it, although the implementation post is outdated and changed a lot.
See also:
- "Take Care of Your Blog" by Robin Rendle
All posts are located in the Discussion's Post Category or Offtopic Category. Why 2 categories? Historical reasons, I wanted to differentiate between posts I put more time into, and just brain blurbs.
To improve working with caching and revalidation, I structured data fetching into a simple and systematic way:
- Some components represent a resource (like a post or a tag).
- Those components only get the resource's unique identifier as props – not the whole object.
- Each one of those components then fetches their data itself.
Using this structure, I can subscribe to GitHub's webhooks, and revalidate only the specific affected caches. This way a revalidation doesn't slow down the whole blog for a short while, but only the affected changes.
- Next.js
- self-hosted on Hetzner
- Cloudflare Proxy
- GitHub Discussions / Octokit
- Shiki
- next-mdx-remote
- Tailwind CSS
- Playwright & Argos CI