What I want from a website
Web development is a mess. In my previous attempts at a portfolio and/or blogging site, I’ve always spent more time fighting the “features” of some template rather than writing actual content. Here are some examples of such “features:”
-
A comments section, e.g. Giscus or Disqus. For most blogs, I think this is just a moderation liability.
-
Content management systems (CMS). Good file management and naming conventions are enough for me. I don’t want to be forced into any CMS idiosyncracies either.
-
Share buttons. I have never used these.
-
Analytics like Umami. This is just overkill.
-
Newsletter integrations. RSS is enough.
-
Too many prebuilt components, e.g. twenty different carousels. It’s just overchoice. If I need a component someday, I can make or look for one then.
-
Multi-author management systems. Git and pull requests suffice.
-
Too many libraries. Why do you need shadcn, MUI, DaisyUI, and RadixUI?
On the other hand, there are some features I consider essential to any website:
-
constantsfile(s). Both for styling, e.g. a single.cssfor all colors, and component data. More on this later. -
Open Graph metadata, and other basic SEO features. Its good for searchability.
-
Affordable navigation stuff, e.g. a navbar, table of contents, etc.
For blogs in particular, I consider these features essential:
-
Math equation support, e.g. via KaTeX.
-
Code blocks with syntax highlighting, e.g. via Shiki.
-
Mobile support. That is, everything resizes without losing functionality.
-
A table of contents that’s always accessible. These should not just be at the start and end, even on mobile.
-
Separation of content and style. I should not be styling components in the same file as my post text data.
What this website has
This site is built off Erudite. It satisfies every requirement above, with only minor modifications. Its design document significantly overlaps this one. I strongly recommend this template.
Let me show off this site’s features using my favorite feature: subposts.
The future of this site
This site is first and foremost a blog, not a documentation nor commercial site. It also happens to showcase my projects and other work. Because of this, I’m already very happy with where the site is right now and am unlikely to add any major features moving forward.
That said, I’ve always wanted to make my own version of various simple webapps. For example, large-type.com just displays large Unicode text on a screen. It’s incredibly simple yet useful. I use it to silently communicate with people beside me (e.g. in a class). I can also do
$ make; open http://large-type.com/#Done!I’d like to have simple utilities like that on this site someday.