What's wrong with this data structure?
Note: this is behind-the-scenes stuff. If you're not a data nerd, you probably won't care.
Context
The current 'life admin' pack is, essentially, a .zip file full of files in folders: completely static files-on-disk. It's a real pain in the ass to keep updated.
The upcoming Quick Start: 'Small business' pack1 will not be a static thing. It will be something that is built, from data. So when you want to create your file system over there, you'll tell my utility app to do that.
This way, it can look however you want without me having to manage dozens of permutations. Want Markdown files without tags in folders? Just generate that. Want an empty folder structure? Do that. Plain text files? Whatever. Push a button, it'll be generated.
I am a liar
I previously said that my software would be Apple-only. Well, I'm building this in Electron. Because I don't consider this the Johnny.Decimal software. At this stage, it's just a utility app.
So just FYI. I am not to be trusted.
(And yeah I know Electron is a waste and JavaScript and I know. I need to get something up fast, and I already know JS. Don't tell me to learn Rust.)
Break my data structure (please)
So I've been thinking about a JSON data structure, and I'd like your wisdom. Because I don't live in this. Some of you do. What terrible mistakes am I making? What obvious pitfalls am I overlooking?
What does it need to do?
Ideally, I'd like to design something really future-proof. If I'm going to design a JSON/TypeScript schema, it might as well be right for the long-term.
I don't have a list of requirements, but if you know JD you can imagine. It should be able to serve as the data store for any system/JDex. Text/Markdown only; it doesn't need to store data. That's what your file system is for.
It'll be public
This will be the officially endorsed schema so that any compatible app can communicate.
Hmm also
I do want the 'small business' pack to come with more than just JDex entries. I have in mind that it will serve as your ops manual; so that's extra documentation linked to each ID. Think multi-page PDFs.
Perhaps that should just be a separate thing. Keep this core idea simple/pure? Probably.
Feedback how?
I'll be hacking around working away on this for the next few days. Any feedback would be very welcome.
-
GitHub: there's a file here and a discussion here.
- Preferred.
-
Forum: there's a post here.
-
Discord: there's a thread here.
🙏 Thank you!
Footnotes
-
Working title. We have a better name up our sleeves... ↩