Right now I’m using a pretty simple log system where every log is a separate note so I can go in and add details to certain logs like “I’m going to make a checklist for this (see details)”, then make the checklist in the note. I have also implemented some more advanced features like adding $thread to the log to tag it with a unique thread id, then any logs I make inside that note get the thread tag too. But there are so many features and systems I want to add that I’m starting to feel really constrained by the plugins I’m using (mainly quickadd, dataview, and meta bind).
So my question is this: Does a system like this exist elsewhere? Or should I dig in to plugin development to implement it myself?
For some additional context, I’ve been programing all over the place my whole life from Arduino code, to MATLAB, to python scripts, to Space Engineers programmable blocks. But I have next to no actual software development skill (the mere concept of GitHub still confounds me).
Is my idea something I should try to do from scratch as a plugin or separate application or is sticking to existing plugins more realistic?
I can answer any questions about the specifics of what I’m trying to do in the comments. Otherwise this post would be even bigger than it already is.
Sorry for reply this long after your message, it’s been one of the weeks of all time.
The most straightforward way of putting my idea is a log system that allows the user to group logs together. Logging will be done with a hotkey and maybe a GUI button, and grouping will be done mostly through a GUI. The essential idea is that I can make logs as an uninterrupted stream of ideas that I can easily categorize and link later. Some groups will be made automatically, like days (separated by gaps of more than 6 hours), and locations (separated by an explicit location change log)
A group will be created by making a new log entry whose note has a property “group children” containing a list of links to every group member. This note then represents the group as a whole, and should try to summarize the content of the group.
An application of this would be taking notes during a disorganized lecture where it is unclear how each new idea connects to the rest. The answer to that connection question is more easily solved after the lecture is over. So I would go through my notes and group clusters of logs related to a single idea, summarizing them with the log that establishes the group.
I may also have custom behavior for when a log contains a link to another note, that note is added as a reference to it’s parent group. So during the hypothetical lecture, I could say "this seems similar to the concept in ", and any group that includes that log would get that link as a reference.
There are some more complex features I have thought about like different group types with properties defined by the logs they contain (I.e task group with property “completed” changed by adding a log saying “Done!”), but the general functionality is all I need for now.
I did recently learn about custom obsidian bases, so that is where I am directing my focus for now.
To develop a plugin is usually faster and easier. Also, you’ll learn a lot on the way and prepare yourself for bigger projects.
To build something on your own costs much more time and effort.
So, you do better, IMO, to start with a little project and if things grow bigger and you can’t design all features you want, transfer to a standalone build.