Ask HN: What do you use for a personal database?
I was curious what the members of HN use when they need a personal database. There seems to be a lot of choices between SQL, NoSQL, and web based tools.
If anyone would like to say what they use, and why they chose it, I would appreciate hearing about it.
Thanks in advance.
45 comments
[ 2.9 ms ] story [ 106 ms ] threadFirestore is bad at some things (e.g. try running a "where" filter query for 'date > X', but "orderBy" some field that isn't 'date').
Also obviously Firestore is very bad for any kind of text searching, especially searching for fuzzy strings.
Also Firestore gets expensive if you're expecting to do a ton of reads/writes in a day.
But for 80% ~ 90% of projects I swear by Firestore.
Whichever seems appropriate for the given task I'm accomplishing.
I have some that are in PostgreSQL. Others in SQLite. A few that are just files organized in a filesystem directory hierarchy. There is really no "one size fits all" solution.
I can send any file up to 2GB, any number of times. Can even set reminder messages. It's great because I don't have to go anywhere else to put things to remember.
https://datasette.io as the interface for running queries against (and visualizing) my data.
https://sqlite-utils.datasette.io/ as a set of tools for creating and modifying my databases (inserting JSON or CSV data, enabling full text search text)
https://dogsheep.github.io as a suite of tools for importing my personal data - see also this talk I gave about that project: https://simonwillison.net/2020/Nov/14/personal-data-warehous...
I'm also using GitHub issues and the new GitHub projects for a bunch of personal data - my notes and TODO items specifically - much of which I can then suck into my own SQLite databases using https://datasette.io/tools/github-to-sqlite
I use this simple tool for most my notes now:
https://github.com/codazoda/nolific
For temporary notes I use my Ponder web app (it just uses the browsers DB) and is partially inspired by old AlphaSmart word processing machines:
https://github.com/codazoda/ponder
it stores:
- My TODO list (items -> entries -> checkboxes)
- My credit card transactions (scraped from alert emails with gmail api)
- A running log with miles/times/routes
i've implemented misc features to organize everything like content tagging, custom markdown rendering, etc.
I personally would like to toy around with some graph database for knowledge management but haven’t found the time to get into it, yet.
Other than that, it’s dendron (and git).
A couple of my older scripts still use JSON files on disk that are loaded into memory, which are actually perfectly fast for the purpose (fast enough that I see no perceptible difference between them and SQLite).
It's slow as molasses to write and read though.
Apple notes for things I type quickly.
Elasticsearch for larger things like transcripts of classes I teach or take.
In any case, for files I use iCloud and for notes I use Obsidian.
Why MySQL? I know it in and out, since I was a MySQL DBA for a few years. It doesn't surprise me anymore, and I can quickly get it to a point where it requires effectively no intervention on my side.
PostgreSQL handles my finances, my database of quotes & collection of notes.