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:
- Keep short notes that store one concept
- Link notes to each other, and where you got them from
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:
- Roam Research
- Emacs Org Roam
- Notion
- Obsidian
- Tiddlywiki & Vimwiki
- Others, probably ¯\_(ツ)_/¯
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!