How Org-mode Runs This Wiki

This wikiº is built with org mode using the Firnº site generator. Each page on this wiki is its own .org file. Each file has a "Resources" and "Notes" headlines; these are the two public headlines that each file on this wiki have. This way each file can have a mix of private and public information.

When working on a project I use the Projectsº org-file, where each project has its own headline for clocking time on - these logbooks then periodically get moved into logbooks for the actual files so that the clock times are representative in the html output.

As files begin to interlink, I use org-roam to occasionally look at the connections drawn between subjects; this interlinking is also represented on this wiki using a mix of org-roam tags as well as backlink recognition when the content is parsed. I do not know if I'll be able to update Firn to support Org-Roam 2.0 - but such is the reality of depending on third party tooling and libraries in your own hand-rolled system.


Images and attachments must be attached as file: link types, as I could not think of a way to resolve org-id's into file-links (or, rather, file links were just much simpler.)

A firn site/org-wiki requires a certain consistency with "Front matter" - for files to sort by date published/updated, each file needs a #+DATE_CREATED and #+DATE_UPDATED frontmatter. Similarly, for linking tags, #+ROAM_TAGS or #+FIRN_TAGS. Similarly along the lines of consistency, all files must have a "Notes" heading if I want content to appear. This isn't required, but it enables me to separate content into public/private boxes based on how Firn renders org-mode files.

Firn, in general, is not a perfect tool. I don't have boundless time to work on it. It does 99% of what I need, and when those needs change, I will alter it - which is a delightful feeling (there are still some bugs, for example, footnotes are not parsed properly yet.)

All in on org?

Am I all in on org-mode, (and thus Emacs, too)?

When I stop to think about it, the thought is a little scary. As someone who enjoys exploring productivity and meta-research tooling, I do pause to think that I'm "stuck" using org-mode and Emacs from time to time. But I don't really see any other way:

  • I have yet to find an editor that I am as efficient and effective in and also runs parallel to my thoughts on using non-proprietary systems.

  • I can't use yet another online system or proprietary file type, that might just disappear in 1-10 years--not for something as expansive as a personal wiki.

  • Org mode covers everything I need - tables for organizing favourite piecesº of cultureº, time tracking for determining patterns in my work and making my estimates, and even writingº books.

  • A way to manage a mixture of private/public information when it comes to publishing this wiki.

  • Fast search and retrieval (ripgrep and org-roam).

  • From my time tracking on the Firnº project, I've spent over 300 hours building this solution. So, sunk cost-fallacy on top of all the above (caveat: I had a lot of fun building it, so, time well spent.)?

I suppose it's a bit ironic that my determination to create and use an open system for managing my own data that is flexible, accessible, and future-proof has ended up locking me to something - Emacs (I've never known a comfier handcuff) [1].

Org-mode for project management

As each project has its own file, it also has its own task headline with TODO tasks. While org mode is great for tracking project TODO's, sometimes I'll use a proprietary tool, like Todoist, for the easiest syncing solution for mobile tracking of tasks. I have not had much luck using Orgzly with Syncthing.

General Org-mode Tips

Some general notes for myself on using org-mode effectively.

  • You can manually break a long line by using M-q (which calls org-fill-paragraph).

  • C-u C-c C-o Open the current link in dired (good for finding where photos are attached)

  • When using org sparse tree (to: "construct sparse trees for selected information in an outline tree"); you can cycle which date types you are filtering trees by when sorting by date.

    • I use this for filtering a list of Booksº I've read in a given time based on properties, or when I've tried certain kinds of Coffeeº

  • Convert column-view into actual text using a column block; this is how I capture the :properties: of my Booksº file.


  1. I never used to pay heed to people who seemed to scorn and turn up there noses at proprietary systems for storing data--even plain-text. In reality, I just hadn't been in the game long enough to see some of these tools, sites, and systems simply become unsupported, abandoned, or no longer usable by (insert newest version of proprietary phone/os/etc.)