Hello, World!¶
Building a knowledge base and maintaining a blog has always been something I've always wanted to do. So after an extended period of on and off development, I'm now proud to say that my personal wiki is now public. The following is a quick overview of the stack used in creating this website.
Markdown ¶
Markdown is the de-facto markup language. The standard is open, simple, and widely supported. Files written in Markdown are human-readable without a WYSIWYG editor. So I see no particular reasons to use anything else.
Markdown, however, is conservative in its syntax, features, and specifications. Implementations(flavors) of Markdown would take advantage its barebone-design to add components, integrations, and features.
Having used several different interations in Markdown, I still don't have a strong preference for any particular implementation. So I paid no mind to the choices of Markdown flavors, and would be okay with whichever is defaulted to by the website framework.
Static Site Generator¶
Creating a website with React, Javascript, MDX, and Tailwind CSS all sounded like a very fun project to me in the beginning. But maintaining said infrastructure seems rather involved and time-consuming for a personal wiki. I wanted a place to organize my brain, and the last thing I want to deal with is JavaScript dependencies breaking.
Enters Material for MkDocs, the project started as a theme for the MkDocs framework, but grew popular and became a framework of its own. It uses Python Markdown, which is more limited in its extensibility than something like MDX with JavaScript.
Since I have no specific needs for MDX and other JavaScript elements anyway, I'm content with starting on Material for MkDocs. The extensions and customizations that it does have are more than enough for my intended purpose. And for starting out, the framework is robust and matured enough that I can focus more on writing and less time on building the website.
The site is built locally for previewing with a Docker image of Material for MkDocs Insiders.
Cloudflare Stack ¶
As a passion project, I wanted to limit costs as much as possible. Cloudflare Domain Registar offers at-cost pricing, and the free tiers on R2 and Pages are more than enough for starting out.
Importantly, since Cloudflare basically powers the entire internet nowadays, I don't think there is a more reliable party for hosting.
Analytics¶
I want to use analytics as a form of automated feedbacks, NOT as a tool to create better advertisements and convert higher ROI.
Google Analytics was designed for the latter purpose, not the mention being a privacy-invasive product. It's something I block in every browser, ad-block extension, and DNS-blocker. So the thought of using it myself feels hypocritical.
I briefly considered Plausible Analytics, but the analytics data it gives is not something that I find actionable nor particularly useful. The same issue arises with Cloudflare's built in web analytics.
Enters PostHog, which seems perfect for what I want analytics to do. Aside from the standard web analytics tookit, PostHog's session replay seems like the perfect non-interactive feedback that I was looking for.