Ah, that makes sense!
Yes, a DB would let you build this. But the point is in the word "build", you need to think about what is needed, in which format, how to properly make all the relationships to have data consistency and flexibility, etc.
For example, you might implement the tags as a text field, then we still have the same issue about addition, removal, and reorder. One fix could be have a many tags to one task table. Then we have the problem of mistyping a tag, you might want to add TODO
but you forgot you have it as todo
, which might not be a problem if the field is case insensitive, but what about to-do
?
So there are still a lot of stuff you might oversight which will come up to sidetrack you from creating and doing your tasks even if you abstract all of this into a script.
Specifically for todo list I selfhost https://vikunja.io/
It has OAS so you can easily generate a library for any language for you to create a CLI.
Each task has a lot of attributes, including the ones you want: relation between tasks, labels, due date, assignee.
Maybe you can have a project for your book list, but it might be overkill.
For links and articles to read I'd say a simple bookmark software could be enough, even the ones in your browser.
If you want to go a bit beyond that I'm using https://github.com/goniszewski/grimoire
I like it because it has nested categories plus tags, most other bookmark projects only have simple categories or only tags.
It also has a basic API but is enough for most use cases.
Other option could be an RSS reader if you want to get all articles from a site. I'm using https://github.com/FreshRSS/FreshRSS which has the option to retrieve data form sites using XMLPath in case they don't offer RSS.
If you still want to go the DB route, then as others have mentioned, since it'll be local and single user, sqlite is the best option.
I'd still encourage you to use any existing project, and if it's open source you can easily contribute the code you'd have done for you to help improve it for the next person with your exact needs.
(Just paid attention to your username :P
I also love matcha, not an addict tho haha)
I've used it to summarize long articles, news posts, or videos when the title/thumbnail looks interesting but I'm not sure if it's worth the 10+ minutes to read/watch.
There are other solutions, like a dedicated summarizer, but I've investigated into them and they only extract exact quotes from the original text, an LLM can also paraphrase making the summary a bit more informative IMO.
(For example, one article mentioned a quote from an expert talking about a company, the summarizer only extracted the quote and the flow of the summary made me believe the company said it, but the LLM properly stated the quote came from the expert)
This project https://github.com/goniszewski/grimoire has in it's road map a way to connect to an AI to summarize the bookmarks you make and generate at 3 tags.
I've seen the code, I don't remember what the exact status of the integration.
Also I have a few models dedicated for coding, so I've also asked a few pieces of code and configurations to just get started on a project, nothing too complicated.