Before 2023 and why change that

Before 2023 I uses Microsoft OneNote to manage my notes and my knowledge base and structured it with groups and pages. It was easy to use, but there were features I did not use like handwriting or putting content in boxes anywhere on the canvas of a page. Links between pages were rare at that time. Switching between devices with OneNote-Apps and the web resulted in collisions every now and then and it was kind of impossible to resolve or better to not create. Then I saw Obsidian on the screen of a friend, and immediately like the idea of Markdown files as open standard and tool agnostic. I did some experiments with Obsidian and a WebDav-plugin to synchronize to my own Nextcloud, but observed that this produces collisions again and I did not want to store my business notes on my private Nextcloud. Parallel to the technical details I read about Zettelkasten and started to create links between Notes. And OneNote can do that, but changing names of pages or rearrange the structure always renders the links useless. The original Zettelkasten-Linking by manually assigned IDs seems outdated today. So EOL for my OneNote usage.

New Setup from Summer 2023

As a former developer, linux user and Open Source fan, I finally decided for VS Code and some markdown extensions. Synchronization via our company Gitlab was a no-brainer. So I created the new knowledge base and notes by:

  1. Export OneNote pages as Word Documents in DOCX or the like.
  2. Use Pandoc to convert DOCX files to MD in quick batch (bash) job.
  3. check in first baseline and start to polish and refactor the notes.
  4. Link them with [[filename]] and let the extension repair links when moving or renaming files. Looks like the base for a Zettelkasten, only adding an Inbox.md for daily fast ingestion to be sorted later.

A few weeks later I learned about the PARA structure and it seems totally obvious that this scheme would ease the decisions where to put files and where to find them again. So I gave it a try and introduced the outer structure as folder:

  • Projects
  • Areas of responsibility (accountable)
  • Resources
  • Archive

In level 2, I created folders for topics like Sofware 1, Team, Security and of course most topics are in all PARAM top-level folders. Having also many office documents in my OneDrive, I also applied the PARA system there and replicated the complete directory structure from my Zettelkasten/Git world. But mixing Markdown with Git office documents with OneDrivs (sync) seems so scary to me that a hesitated to do that.

Extensions and common workflows

There are many Markdown relate VS-Code extensions, after some try-and-error, this selection survived for 2 years:

  • Enhanced markdown preview
  • Markdown Memo
  • Markdown Checkboxes
  • Todo-Tree,
  • Print (to render in browser, share easily in Teams meetings, export as PDFs)
  • Git (of course)

When choosing filenames I always try to use compact but descriptive ones and thus I always had the whish to open files which I remember parts of the name very easily. VS-Code provides ‘Ctrl-P’ for exactly that, great! That command evolved to my most often used way to open a file (90 % for sure). I do not exploit any Zettelkasten or PARA structure, but it fits to my personal “associative memory” (brain). Adding a macro (short text) to expand dateto the ISO formatted date of today allows me to create new entries with heading like ## 2026-01-24 Alignment with Peter very fast.

Mobile usage

There is no VS-Code for my iPad or my Android phone, so it needs a different tool chain there, but git and MD are well established. I use it for personal as well as for business by having dedicated git repos for each (on different git servers, of course).

iPad

Obsidian as editor on the iPad serves very well. These lines are written with that. There is one non-free git app for iOS, but how to work with git in an open source fashion? Then there came ish along! A Linux shell being able to mount directories on iPad. So easy: Run ish, install git, mount obsidian directory, git clone, done! Even the VPN connection to my company was transparent as expected. One small issue was, that ish has two filesystem options to use: ios and ios-unsafe. With ios, the git commands get stuck, only ios-unsafe works well.

Android

It took until early 2025 to discover zettelnotes, an Android app for note taking based in markdown and being able to directly sync with git repos. Extremely useful for short notes of ideas. Works like a charm, no head-aches or scary tooling needed around.

Todos revisited

Until mid of 2025 I used Microsoft TODO to manage my personal tasks, but always had many - [] markdown tasks in my notes. So at that point in time I strived to fuse the task management escaping from the next Microsoft app. The Todo-Tree extension in VS Code is very powerful and I combined it with a few macros:

  • Defining TODO status : WIP, PRI, WAI, NOR, LON (Work in Progress, Priority, Waiting for other, Normal, Longterm).
  • Configure Todo-Tree to identify - [WIP] blah blah as a task of status WIP and same for the other status
  • Not using - [x] for closed tasks at all there was no need for a change from - [WIP] to done, I just remove the lines when a task is done. Git has the history.
  • Assigning colors and an order to rank todos like above.
  • Defining macros to create a new task just based on the three letter status WIP -> - [WIP]
  • Status changes are done manually.
  • Optional: defining scope filters to reduce the displayed tasks to subsets. WIth that setup I can write my todos in the files and context they belong to, and Todo-Tree renders a neat list with many options to display. That serve me well since autumn 2025.

PARA transposed

The combination of PARA and interlinking like Zettelkasten serves well for me until late in 2025. Having Git as a backend I never lost a line of notes. If a collision happens, I can resolve it precisely. And yes, even due to the fact that I am the only user of my knowledge base, I create collision by forgetting to commit and push on one of my devices.

Having the four-folder PARA as top level structure started to bother me first in the beginning of 2025. I decided to evict the archived files into a different git repo zettelarchive, because Ctrl-P always suggested filenames from the archive. So PARA reduced to PAR. In my OneDrive, I always had the challenge to decide between Project (P) and Area of Responsibility (A). The strict definition of a project to end some day did not hold and I did not move files between these fast enough to reflect changes in priority. In both (P) and (A) I had identical subfolder for my topics to manage, that ambiguity was never solved. In the beginning of 2026 I decided to transpose the structure:

  • Top level is now topic/theme/project, e.g. Software1, Security
  • Second level Active is a fused (P) and (A)
  • Second level Passive is the old (R) Resources

If I would have to chose an acronym, it could be T/AP: [Topic]/{Active|Passive}. Good enough for now, safe enough to try. And of course I also applied that scheme to my OneDrive, replicating the exact folder structure.

OneDrive sync

After an experiment to use rclone bisync ... to sync my OneDrive side-by-side with my zettelkasten, I overcome my hesitation and start to really mix both worlds.

  • Based on the identical folder structure, it should match.
  • rclone is limited to sync only a handful of top-level folders, not all Microsoft invented directories I never use.
  • Git has extensive entries in .gitignore to not feel responsible for all the office files.
  • Markdown is included in bisync and send to OneDrive so it can be shared with other file by file.
  • Markdown in OneDrive should not be modified, or at least should not be modified on both sides. I would like to avoid mergen with rclone.