www-gem words

Hybrid file organization

Published on

I must emphasize how engaging with people sparks interesting discussions and ideas. These exchanges often serves as a catalyst for writing.
Recently I’ve had an exchange with Hyde about the diverse file structure systems. Over the years, I’ve experimented with some of them. In this blog post, I’ll share my experience combining the flexibility of the PARA (Project, Areas, Resources, Archives) system with the structure provided by Johnny.Decimal (JD).

╭── The PARA system

I’ve briefly wrote about it in this post . To keep it straight to the point, the PARA system consists of organizing your files by:

╭── The Johnny.Decimal system

The JD system uses a decimal-based numbering scheme where everything gets assigned a 3-digit number in the format of XX.YY.

╭── PARA vs JD

It’s time for the big showdown! At least we would have a fight on our hands if one system proved itself superior to the other, but life is never always black-and-white. Let’s be more realistic and see where each system excels:

Criteria PARA System Johnny.Decimal System
Flexibility Dynamic. Makes for projects in flux. 10x10 grid and rigid categories.
Directory Depth Can have multiple levels, potentially leading to complex structures. Moderate depth; 2 main levels with flexible subcategories, easy to expand.
Searchability Files and folders are well-organized but may require manual search within projects or areas. Highly searchable due to consistent code structure.
Maintenance Shine in evolving workflows. Easy to maintain by adding or removing projects/areas. May require restructuration and nmeric codes adjsutment with projects changes/growth.

In short, the PARA system is ideal for projects in flux, allowing you to dynamically adjust your directory structure as needed. It’s particularly useful for ongoing activities and areas of focus that don’t have a specific timeline or end date.
On the other hand, the JD system provides a rigid yet flexible structure, making it easier to maintain consistency across your file system.

But like you, I want it all. To achieve a balance between flexibility and structure, I’ve combined the PARA and JD systems:

  1. PARA encourages assigning files directly to Projects, Areas, Resources, or Archives, where each item has a clear reason for existing and a defined next use. Eliminating catch-all folders reduces clutter, prevents forgotten files, and ensures that everything is organized by intent, not by where it happened to land.
    With that in mind, default folders in $HOME such as Desktop, Downloads, Music, Videos become unnecessary because they function as temporary holding areas rather than purposeful categories.
  2. While I didn’t create this approach, I’ve decrease the directory depth by mapping the JD main categories 10, 20, 30, and 40 to the PARA folders. The downside being that I have to change this first bit of the subdirectories names when I move them into another main directory. This is easily achievable with one command, but one may prefer to use PARA folders naming.
  3. My personal life is less rigid than my professional one. If I apply the JD naming convention consistently across all my work folders, for my personal directories I prioritize descriptive names over JD codes, using formats like 10.YY and 20.YY for Projects and Areas. This approach simplifies navigation with fuzzy search and reduces cognitive load, allowing my system to adapt easily as my current interests evolves. For Resources and Archives where the numeric codes provide long-term organization and structure, I apply the JD codes (30.YY and 40.YY).

╭── My system looks like

As mentioned above, my personal and work file structures differ slightly but the maximum directory depth will always be three. Let’s see how my $HOME/Perso folder looks like:

10.01_House-renovations
  ├ Material
  └ Build plans
20.01_Photos (to be edited)
  ├ Friends
  └ Hiking
30.01_Scripts
  ├ 30.01.01_Windows-manager
  └ 30.01.02_Github
40.01_Photos
  └ 40.01.01_Parties
    ├ 40.02.02.01_250304-Moms-Birthday
    └ 40.02.01.02_240612-John-Party
40.02_Photos
  └ 40.02.01_Travels
    ├ 40.02.01.01_211218-Paris
    └ 40.02.01.02_200422-Washington-DC

And this is an example of my $HOME/Work folder where the JD system is applied in all (sub)directories following the pattern XX.XX.XX.XX / PARA Client Project Step

XX.XX Client-1
  └ XX.XX.XX Project-1
      └XX.XX.XX.XX Step-1

Here is a short example with PARA-like names in parenthesis for reference:

10.01_Client-1 (Active projects)
  ├ 10.01.01_Project-1
  ┆   ├ 10.01.01.01_Step-1
  ┆   └ 10.01.01.02_Step-2
  └ 10.01.02_Project-2
      ├ 10.01.02.01_Step-1
      └ 10.01.02.02_Step-2
10.02_Client-2 (Active projects)
  └ 10.02.01_Project-1
      ├ 10.02.01.01_Step-1
      └ 10.02.01.02_Step-2
20.01_Client-1 (Continous/standby projects)
  ├ 20.01.01_Project-1
  └ 20.01.02_Project-2
20.02_Client-2 (Continous/standby projects)
  ├ 20.02.01_Project-1
  └ 20.02.02_Project-2
30.01_Client-1 (Resources)
  ├ 30.01.01_Project-1
  └ 30.01.02_Project-2
30.02_Client-2 (Resources)
  ├ 30.02.01_Project-1
  └ 30.02.02_Project-2
40.01_Year-2025 (Archives)
  ├ 40.01.01_Project-1 (moved from 10.01.XX or 20.01.XX)
  └ 40.01.02_Project-2 (moved from 10.02.XX or 20.02.XX)
40.02_Year-2024 (Archives)
  ├ 40.02.01_Project-1 (moved from 10.01.XX or 20.01.XX)
  └ 40.02.02_Project-2 (moved from 10.01.XX or 20.01.XX)

╭── Take home message

By combining the PARA and JD systems, I’ve created a hybrid file organization approach that balances flexibility with structure. This system allows me to efficiently manage my projects, areas of focus, resources, and archives while minimizing cognitive load.

╭── What about notes?

I treat my notes differently than regular files, applying no structure system to them. I record, access, and manage my notes using the Obsidian plugin in Neovim, even though I don’t use the app itself. By default, I rely on the Zettelkasten system for naming them, but I primarily use tags and grep/fuzzy search to retrieve my notes quickly. This approach works for me because I stick to a simple concept: treating your second brain like your own brain, meaning being selective.
Your biological brain doesn’t store every fleeting thought; it filters, abstracts, and integrates. My notes capture only well-understood and distilled ideas, building a system that supports insight and creativity rather than one that becomes cluttered and overwhelming. Instead of using my notes as a raw dump of everything that passes through my mind, I use them as an extension of my thinking.
When ideas are clarified first – by removing noise, vague phrasing, or half-formed thoughts – each note becomes easier to retrieve, more meaningful, reusable, and easier to connect with others.


This post is part of the System Structure series
  1. Organization: basis for a healthy system
  2. Hybrid file organization

More food for thoughts? Check other posts about: #System


Thanks for your read. Hope it's been useful to you.


Interact with this post using Mastodon or

Comment on wwwgem's post

Copy and paste this URL into the search field of your favourite Fediverse app or the web interface of your Mastodon server.

✄ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈