The other day, I went through and did an initial breakdown of the components that would need to be developed as part of my "Picasa Replacement" project, in order to have a workable alternative.
I made this breakdown as a way of going in more level-headed about what exactly I was about to lock myself into (and hopefully convince myself against rashly diving into headfirst), as I was definitely getting "the itch" to just dive right in and build "just the basic photo management tool" part (i.e. "part 4", with "part 1" thrown in to have anything to show, and part 2 inevitably having to be done to before I could even contemplate setting up part 4), with the idea that the actual non-destructive image editing engine would be more of a slow burn afterwards (i.e. the exposure + colour edits would then be ported over as-time-allows, once I had the functional media management tool that I needed first)
(*) I must admit, I have also been slowly digging through Darktable's source code, trying to figure out how much of the iop code can be harvested + refactored into powering the core of my own pipeline (as some of those operations are really powerful in the ways I want, but simply using the sidecar files to pass data to it doesn't seem as viable an option as I had though, given the horrid way it handles storing state - i.e. obscure hashed / binary-dump data in the sidecar files, coupled with only the database actually having the most recent settings once it loads a file once)
Anyway, here is the breakdown notes from my notebook, in case anyone else would like to attempt this (or join in the efforts at some point).
(TBH: Seeing this breakdown is and should be very sobering... It is probably a decent 4-5 years of man-effort - assuming semi-consistent progress at a fast rate gets made even - to get to a somewhat useful point. Hence why I wouldn't really recommend anyone attempts this on a whim!)