# Why I built this site using VuePress
# The Personal Knowledge Management Backstory
There are many personal knowledge management systems (PKMS) in the world now.
I've been using the free version of Evernote (opens new window) as my personal junk drawer for bookmarks and articles ever since del.icio.us was unfortunately purchased and driven into the ground by Yahoo! years ago.
As a guy who loves to apply technology to business, and who's personal crack cocaine is the merger of human behavior and psychology with statistics, I've been very interested in metacognition. Of course not just general metacognition, but exploring and experimenting to find the most effective personal methodology.
Many of these personal knowledge management systems work for others. And although I am not assured success with the stack below, I believe it may work for me. I see the benefits of each feature, so I've been hoping to collate them into one, simple-to-use application.
Unfortunately, I've found most PKMSs are quite unintuitive. I want (nay, expect) them to work a certain way. When they don't, there's certain threshold of pain I'm willing to go through to get them to work "properly" (read: according to the way I think). So far, I've been unwilling to learn how they want me to work.
# Building Features for My Brain
I'm going to build a tool according to how I think, instead of trying to change the way I think to fit the tool.
The things I feel I currently need are as follows:
- Static pages
- Bi-directional links
- Network map (aka "knowledge graph")
- Public articles
- Private notes
- Cornell note support
NOTE: I expect this to change rapidly as I learn more about mind gardens and personal knowledge management systems, likely dropping some features rather than adding.
# Static pages
There are two stakeholders inherent with public written content: The writer and the reader.
At risk of stating the obvious, the reader gets value from reading the content. Anything which inhibits this process should therefore be deemed "wasteful". It should be removed for the reader's benefit. And static sites get to the browser much faster than a dynamic site (e.g., anything which requires server-side processing).
Similarly, the writer retains value, in part, by being able to keep the maintenance and production costs as low as possible. Lower maintenance costs (in dollars and time) and lower production costs (in time) allow for more time spent on production - the primary task in which value is created.
Therefore, I began with what I thought was a simple requirement: a static site generator.
I tested a few systems like Statamic (opens new window), Jekyll (opens new window) as well as a few others. I'm partial to Laravel, and can customize it quickly, so I started with Statamic. In the end, however, I didn't want to pay $199 for a site generator, and I wasn't interested in learning a new language to use Jekyll.
# Bi-directional links
While researching personal knowledge management, I started following @anthilemoon (opens new window) because of her tweets around metacognition. Anne-Laure wrote a tutorial on Roam Research (opens new window), a flexible tool built primarily for the scientific research communities. Subsequently she spoke about metacognition with the Founder Summit (opens new window) community, where I was happy to pick up some more great advice.
I used Anne-Laure's talks and posts along with Nat Eliason's Roam Research tutorials (opens new window) and dove head first into the question of whether I should change my note-taking process, and how.
It quickly became clear Roam did not fit, but the bi-directional links have some use.
Bi-directional links allow me to specify a word as a link, but not necessarily require the target page to have already been created. I think of it as something similar to Trackbacks (opens new window).
In other words, I can create a new article when you create a new internal link. Nifty huh?
The biggest benefit I see is to allow the writer to indicate the importance of a potentially interesting or connecting topic without breaking concentration.
Later, when it's time to write on a topic which has content associated to it, a whole host of links already exist which may contain interesting and related information. Having those easily at your fingertips and collected in the background should help build the content and associated topics which I may have forgotten or didn't think about the first time around.
Not to mention, anyone who knows me knows I heavily lean on tools to assist with my lacking memory.
Combined with a few other features like network mapping, this feature can make for a powerful new method for finding new or remembering lost relationships.
Anne-Laure also uses an adapted and plugin-filled TiddlyWiki (opens new window). I tried out it and KnowFox (opens new window) for the same reasons as Roam Research. Each of these system use bi-directional links. But, I felt the user experience with all of them was a bit clunky.
Instead, I plan on building a bi-directional linking plugin for VuePress.
Earlier I mentioned one of the goals for the writer is to lower the cost and time to production, and I realize this is a slight departure from that goal. That said, I also believe (1) doing this in public could help someone else learn and (2) the plugin will be contributing to the VuePress community in code, not content. In this case the ends justify the means.
# Network map (aka "knowledge graph")
Bi-directional links are a fantastic feature to help write quickly and bring directly associated topics and snippets of information into view. But, what about second-level (or further away) effects and relationships?
To really put topic association into overdrive we need a network map.
Roam Research seems to be the poster child for this again (see below). And as of yet, I'm not certain how I'm going to be able to put this together. But it just seems possible with what we are working with here so far.
— Image credit: Roam Research (opens new window)
The goal, of course, is to make visible those previous relationships between topics which may have gone unseen without something like a network map showing them to you.
As a side effect, the visual representation and interactive nature of mapping these topics seems to help move my brain into a different mode. It's more exploratory and less data mining. This more relaxed state of being seems to facilitate exploring these potential connections. It's a more creative flow and seems helpful.
# Public articles
I believe teaching is where learning truly gets tested and refined. When you teach something you've learned we are automatically repeating it, but we're also testing the edges of what we really actually know.
You've heard it said that we are our own worst critic. This shows up brilliantly when we try to teach.
Writing in public has another benefit - it helps others learn as well.
Simply telling our story, the things we've learned, the decisions we've made (and more importantly, why we chose what we did) is just as important for others to learn from your successes and mistakes as it is for your reflection and mental health.
Obviously, I can start this entire process with a simple blog, teach along the way and build out the system at the same time. It's a win-win, while "eating my own dog food", so to speak.
# Private articles/notes
Not everything should be public.
I had a english teacher once say there are two types of writing: That which is for other people and that which is for you. The trick is to know the difference and write according to the correct audience. Writing is about communication and you can't communicate effectively if you're conflating your audience with something else.
Many of us have bookmarks, sporadic notes on projects, tasks lists, things we want to remember, etc.
Many of these types of items are not ready as a fully baked idea to be communicated to the world.
So, I should have a way to have private notes, links, thoughts, and fragments which may or may not one day be formulated into a coherant thought for others. Sometimes only I understand the context, and that's where it should stay - in my own thoughts - until I explicitly want to do something with it.
# Cornell notes
To come full circle, Anne-Laure mentioned the Cornell note taking methodology (opens new window) at one point.
Although I understand one of the goals of the method is to slow down your note taking to force you to think, I find it dictatorial and I'm trying to digitize much of my life right now. So, I went looking and found only one application on the OS X App Store which came anywhere close to digitizing this method.
I find the Cornell note-taking method pretty effective and I've found myself using some bastardized version of it even before I knew what it was.
It seemed obvious that I should include support for this method in my system here, especially while writing private notes. My hope is it will help me process the things I listen to and read a bit more explicitly while reducing the time to organize my thoughts.
# The Decision
On Friday, May 15, 2020, I spent a bleary-eyed newborn-blamed sleep-deprived evening and early morning learning about VuePress (opens new window). A quick customization of this system lends itself to meeting two of the 6 features I want. And that's what you're reading on right now, in fact.
After trying some knowledge management systems I started building my own using VuePress.— Nate Ritter (@nateritter) May 17, 2020
✅ Static site
✅ Public articles
🔳 Bi-directional links
🔳 Network map
🔳 Private articles
🔳 Cornell notes
Considering “building in public”.
Now that I've explained why I've chosen this direction, the next few articles will be on how I am building each component and what I am thinking while I do so.
I'd love to hear what you think on Twitter (opens new window). Feel free to say hi. 👋
If you're curious about the things I write about here, you should definitely join my newsletter. It's an occassional email with interesting things I've read or found, plus new articles.