How do you organize your photos? (Article on folder structure and cognition)

I’ve published another photography-related post, this time involving photo organization. I argue for a flatter folder hierarchy, looking at the topic from the perspective of knowledge organization and cognitive load. While I do mention Darktable briefly, this article is more of a discussion of general principles for effective image organization.

The system I describe works well for me, but I’m not a professional photographer, so I would love to hear alternative perspectives. How do you organize your image collection? In particular, how do you manage exports—and do you follow any naming or folder conventions in Darktable (or elsewhere)?

Looking forward to hearing your thoughts and seeing how others approach this.

3 Likes

My JPEGs live in /2025/2025.10 Darktable/ with darktable being an event related identier (Christmas eg.). RAWs go into a subfolder named RAW. I also do some light tagging to be able to find individual photos easier.

4 Likes

Pretty much what I do too.

1 Like

After much deliberation and experiments, I realized that my library needs to be optimized for browsing, not editing. And it should be browsable with any old file explorer, not just some app library. Thus, my library exists first and foremost on my filesystem. It may at various times be imported into DigiKam or whatever other program I’m playing with, but the ground truth is JPGs in directories. This focus on browsing leads to a somewhat different architecture:

Like you, I use one directory per event. However, this gets unwieldy quickly, so I collect older years’ event directories into yearly collections, and eventually into decade directories. Thus my top-level file system remains relatively clean, while recent events remain easily accessible:

Inside these directories, there is a flat list of JPGs, each prefixed with the capture date. This lieaves the directory content correctly sorted for browsing, regardless of application. The file name also contains enough information to find the matching raw file in my archive.

Importantly, there are no raw files here. Raw file directories tend to get messy quickly, what with the various sidecar files and denoised variants and pano stitching projects that various editing programs create. So in order to not pollute my photo library, raw files are stored in an archive elsewhere (more on that below). This is where my organization differs significantly from yours.

All tags and metadata are attached to the JPGs, so the directory listing remains clean and browsable. Additionally, I suffix my rating to the file names, to be able to filter the file list by ratings:

Finally, my raw file archive lives separately in a flat list of directories, ordered by year and day. I access these only very rarely after the initial export, so some overhead of searching is acceptable to me. An additional benefit of this setup is that I can move out old parts of the raw archive to external storage, without disrupting my photo library.

Typically, the raw file archive is imported into my Darktable (or whatever else raw developer I’m playing with), while the JPG library is imported into DigiKam (or what ever else).

I’ve gone down a similar road as you, but after many experiments, I found that keeping raw files and cooked files in the same tree is more trouble than it’s worth. Obviously your mileage may vary.

3 Likes

A problem I have with your “function first” management is that if/when you manage files later, you have to manage things in parallel in the two hierarchies. You can script some, but this can get complicated since you can have duplicate file names.

2 Likes

Personally I find the raw/jpeg distinction the least important aspect of finding a photo. I’m looking for a photo of something. Having to know if I exported it or not makes the effort impossible. If it turns out I never did export it but remember the image my whole travels down the export tree will be in vain. It happens to me a lot that I’m sure an image made the selection but turns out it did not.

I’m capable of producing a new output file if required. New output media or context often requires adjustments anyway.

I’ve found shallow directory structures superior though so recommend keeping sub directories to a minimum.

For practical reasons that still means year, event folders and sub folders for different versions of exported edits for me.

2 Likes

I thought over this for some time and I think there are basically two approaches: event-centered or date-centered. While it makes sense for a professional photographer to think about events, I found out that it does not made sense to me and I started to use only dates. Hence, I sort my photos as /home/reox/Darktable/YYYY/YYYY-MM-DD. Events, Locations etc are organized by tags in Darktable, which is I think more flexible.

2 Likes

I do it similar to @bastibe My Library is on first hand my structure on the file system. JPGs and RAWs are integrated both in this structure. For anything on top like tags and person searching I use digikam.

I rsync (actually, grsync, the camera-card mount point being ready set so the process, if I remembered to plug in the usb and turn the camera on!) to a holding directory, keeping the camera’s directory names, eg “10650917,” copying new-only, defined by filename-only. That way, I can wipe out stuff in the holding area by copying dear old /dev/null to them with a find command. If they are still on the camera they won’t get copied again.

“10650917” gets copied to 2025/2025-09 And renamed by adding the event/musician name. 2025/2025-09-Adithya-Madhavan.

I go through the pics with a simple viewer, deleting the bad and the not-great. I’m viewing the camera JPG at this time.

I run a script that looks for every raw that doesn’t have a matching JPG and deletes it At this level of culling, I do not keep the raws. A subdir called “raw” is created and the raws are moved to it.

Over to dt. I import as 3-star. I match people (five colours is usually enough) to colour. I go through and demote to 2-star. I only process the 3-star. I output to raw/…/dt. I resize to raw/…/dt/1920. This directory scheme needs flattening!

Recent addition to all this. If I am committed to raw processing, why am I keeping the original camera jpegs? When I’m feeling brave enough I delete them. And the original dt-output .jpgs: I keep the raws, and the small-file 1920s for casual browsing, and they are what I distribute to my subjects.

Damn, that sounds complicated! But it’s a routine.

… to be read as two dots. People will probably know that’s what I meant. This forum software does odd things

1 Like

I ‘organised’ all my photos by putting them in folders that I named according to date in British format (DD-MM-YYYY) — and yet, only after two solid weeks of work, did I notice the ever so minor flaw in my logic. :blush: :clown_face:

7 Likes

Keep in mind that the folder structure is only one of the organisations of your images.
Keywords are also a way to organise your images, pretty independant from the folder structure. And there, an image can be part of several “trees”: location, subjec. And we have of course searches on the different timestamps.

That’s why the ISO format is YYYY-MM-DD :smiley:

5 Likes

I organize by IPTC keywords and leave my files scattered hither and yon in no particular folders.

XnView MP is my friend.

@Ofnuts That’s fair, for sure. It does complicate things if you want to make changes later.

If I ever decided to make big changes to the structure, I would likely just delete the old exports directory and re-export as needed. I export only a very small percentage of the pictures I take, and typically I export them for a particular purpose. Once that purpose is fulfilled, I guess they’re just taking up space haha. Pictures that I really want to keep, for example, would be printed out and put in my photo album.

1 Like

I’m excited by the idea of using tags in Darktable for adding extra metadata. I actually don’t even use the tagging feature, but I can imagine it would make filtering and searching much more powerful. Do you have a tag hierarchy for that? This is what I imagine it must look like:

Events|Grandma's birthday
Events|Trip to Malaysia 2017
Locations|Hometown
Locations|Malaysia

For locations, I did recently discover the geotagging feature in Darktable, which I thought was awesome. Unfortunately, I’d have to add my location data manually, which isn’t the smoothest process, but it’s not much different from having to tag your photos manually, I guess.

I started my photo repository in 2004, right after returning from overseas. It’s simple computer directory structure, main folders are by-year (2004, 2005, etc.), and in them are sub-folders named “2004-01-01 New Year’s” and such. When I started shooting raw, I made “NEFs” folders in the topic folder (yes, I use Nikon cameras), put the raws in that folder and batch-process what I call “proof jpegs”, 800x600 resolution, into the topic folder. The topic folders are served by my webserver so my wife can pick through the pictures for her Facebook habit. For her uses, the proof jpeg is usually sufficient.

I only shoot raw, and any JPEG made from such is just a rendition for a specific purpose. My raw processor stores the toolchain that made it in the metadata, and that software will also, upon finding such a toolchain in the JPEG, ask whether to open the JPEG or to open the raw and re-apply the processing. I do the latter about 99% of the time, with the objective to make a different rendition for some other purpose, e.g., a TIFF for work in GIMP, or a JPEG of full-resolution for someone who wants to inspect detail (I do a lot of scale modeling, which begs inspection of detail).

I back up the Pictures/ directory that contains the whole shebang to my old desktop computer, which serves as a backup/github/other-lengthy-processing computer. I also periodically make copies on USB hard drives to give to the children, who store them at their cribs. That gets me off-site backup; 'bout the only residual worries would be the Yellowstone supervolcano. :grin:

2 Likes

My image organization is terrible, and any time I decide to try to improve it, it makes my head hurt. :flushed:

1 Like

Indeed, I tag by Country|Region|City, sometimes even adding POI and also have some tags like Vacation etc.

1 Like

As long as I’ve been storing pics on a computer, I’ve used the year/month/date/event structure. It just seemed obvious!

But I wish…

For the first few years of photographing concerts, I didn’t even add a name to the directory. I wish I had and do now. But this system finds me the “main” musician, not the accompanists. I could have done something to record that.

Yes, tagging in dt would have been a good idea!

I did give digikam a try. That was not a success. Facial recognition would be lovely if I didn’t have to name and confirm all the faces.

1 Like

I organise my raws in date/event-named subdirectories in a single directory. The individual files are named with the date/time they were taken. I am pretty strict in my culling so all my keepers (processed JPEGs) just go together in a single directory ordered/named by date. I give each of my keepers a title so if I really want I can search by that.

1 Like

Yes. Even if I devise many tags, there is always something that doesn’t fit. I have the same problem with music collections.