HTML—the only way do to PKM that's not total garbage!


What is PKM?

If you've spent any amount of time in the academic / software parts youtube, then you probably know what it is. The idea is that, instead of taking regular digital notes, you can link them all together into one big web of knowledge, allowing you to find new connections between things. A bit like having your own wikipedia, with a bunch of in-line links between pages.
Of course, it goes a bit deeper than that and there are all sorts of philosophies about how exactly you should organise things—a popular one being zettlekasten: Anyway, if you clicked on this article, you probably already know what PKM is and how it works—if you have no clue what it is and what I've written interests you, there's hundreds of youtube videos on it.

The problems with other PKM software

In PKM, you have a good few players:

Proprietary Software

The problem with many of these is they're proprietary. Aside from the problems with all proprietary software, like having to pay, and being sent to hell, it's specifically unsuited to PKM. The idea is that you keep the system for life, and only a fool would bet that notion will be in business 100 years down the line, or that the software takes a direction that you don't like. Of course, you can change it over, and pandoc makes that a lot easier, but there's still hassle with it. They could lose your files or e-mail your diary to the CIA- you just can't trust a company with a lifetime of notes.

Dealing with Markdown

Even for the ones that aren't proprietary- or for the ones which spiritually aren't proprietary, like obsidian, there are still problems. First is markdown- you just can't do everything you want with it. Sure, if you want to bash out the most basic of notes, then markdown will do it. However, if you want any sort of complicated note layout, inserting things, or, god forbid, make your notes more aesthetically pleasing, then you're fucked. And, sure, the reason for using markdown is almost valid, it's not an awful lot more intrusive than plain text, and it is much closer to plain text than html is. However, with just a small amount of thinking, it's not hard at all to make some HTML that's readable from the file- the way I'm writing this very webpage is perfectly readable, and I can make it look however I please. Some people get around things by adding some latex support and such, and with org roam you could probably get across every idea you could with HTML, but it won't look as nice or feel how you want it to.

Expandability, customisation, and personalisation.

The main problem with these PKM systems is features. Firstly is adding features, which you just can't do with most of these. With org-roam, if you know emacs well enough, you can make the system completely your own, and if you already use emacs regularly then ignore this article and use that—it's a great package, it just requires putting up with emacs. With HTML, you can add anything you want. Features like in-line links and latex support are found in some programs, but not others, With HTML, you can add it all easily. Anything specific is just one small script away, and you can easily add anything you want—be that syncing to a calendar; buttons to send emails, reminders, or alarms automatically based off of a note; embedding pdfs with annotations, and then linking to a specific annotation when referencing a note—the possibilities are endless. Just think about what you can really do with HTML, people make entire web apps out of it. That's really the great thing about using a HTML based system, by default you'll have all the functionality of the markdown systems, but you can scale up and scale up until you have a customised, lightweight, beautiful web app which organises completely everything. There's a billion tools out there to help, right from small static site generators, up to enterprise class frameworks which can handle anything.

Additionally, when you use, for example, obsidian, your system really has to work the way they want you to use it. With atomic notes and such, but there are so many different ways to run a system. As a part of mine, for example, I keep a diary, which, as a file, is by no means atomic. But I can link everything together however I like, and it works just fine. And if I was using obsidian I'd probably do it the same way, but eventually you find yourself just hitting the edge of what the software was supposed to do, because it was designed to be used in only one very specific way.

Really, the best way to go about something like this would be to code, from scratch, your own, non-html based system, as it would give you the most control and lead to the most personalised end product. Of course, pratcially nobody has the skill or time for that, so this is the next best thing, as you can start small (but still on par with or exceeding the other methods), and work at your own pace to whatever end goal you have.

HTML PKM Methods

As mentioned, you could go about this in thousands of different ways, but here are a few good ones:

Static HTML with a text editor

For this method, you would use a browser window to view your notes, and a text editor to produce them. Starting from scratch is a great way to have a website you fully control, or using sombody else's web template is equally valid. I don't know of any templates specifically geared towards making PKM websites, but any blog template will do.

WSYWIG HTML editor

This method is particularly nice, because you can use the same program to make, edit, and view your pages, though you do have the option of using a browser. Additionally, you can combine the 1st approach with this in any way you like—maybe you'd prefer to just use the WSYWIG for quick edits, or maybe to do something you don't know how to do with pure HTML. However, I would only reccomend using a old web WSYWIG editor—nothing like a fancy wordpress or squarespace or whatever site. This is because if you're keeping this system for years and years, then you'll at some point want to change editor, or maybe you've learned enough HTML to ditch the editor—any reason really. If you're working on some super fancy editor, then the code could be completely useless to another editor. You want one that just makes HTML and CSS like a human programming a simple site would make. Something like bluegriffon is a great choice—spits out nice, simple HTML, is open-source, and has plenty of features.

Using a Static Site Generator

Static site generators are a great option, too. Plus, you can just add markdown files and get a full HTML website from them, with very little effort. However, I would say that this is maybe not my favourite option, as I like to have fun with my pages. Plus, with a lot of static site generators, you could be making something that's hard to port to another system when you're not using it.

Final note: I don't know any way you can get some nice screen with a bunch of nodes and the links between them like obsidian has— maybe I'll have to create one you can include in your own site!