background
Tiddloid is too slow for my 100~200M+ wiki (size depending on using lazy-image or save-all), each time I save a tiddler, it triggers a save of the whole HTML, which will take 3-5s, and open HTML is longer.
My SHARK KTUS-A0 has Snapdragon 8 Gen 1 CPU and 12G RAM, it still is so slow, maybe the single HTML wiki is not suitable for an all-in-one wiki lover like me.
So I decided to write a mobile TW app that’s lazy-loading, single-tiddler-saving, and can sync to NodeJS wiki like TidGi-Desktop, so I use react native expo, which is stable enough for GPT4 to write most of the code, I just need to debug and refactor the code.
feature and download
So after a week, here is it GitHub - tiddly-gittly/TidGi-Mobile: A Note App that is local-first, uses tid/md pure text file, all-in-one with calendar/todo/diary widget, lazy-loading, backlink & outline & Zettelkasten, and syncs with the open-source TidGi-Desktop.
You can download the apk from Github Release.
It is mostly a working demo for using 100kb HTML wiki, and a sync adaptor to lazy load tiddler from SQLite when needed. In this version, features are:
- “Scan QR to SYNC”: Can scan QRCode on TidGi-Desktop or any NodeJS wiki that has tw-mobile-sync plugin to download wiki to mobile, and cache tiddlers in the SQLite
- “PREF…”: Configs about wiki, you can delete wikis here, if there are any severe bug…
- “Sync & Backup” → “Sync To Cloud”: Sync changed tiddlers back to connected TidGi-Desktop or NodeJS wiki
outcome
Now opening a wiki still takes 4s, because tw is building cache from scratch each time (which can be avoided after Developer demo of alternate wiki store implementation by Jermolene · Pull Request #7329 · Jermolene/TiddlyWiki5 · GitHub is merged). But saving a tiddler cost nearly no time, maybe a 1000x boost!
The code is in MIT license, because I think it was too easy writing this app, it is mostly done by the AI.
If you want to make something interesting too, I encourage you to read the sync-adaptor code and the local backend that read tiddler from SQLite for it
And there are also some technical discussion on Github about this project:
- User Interface - SyncAdaptor - Local DB/FS - Some Custom Sync Mechanism · Jermolene/TiddlyWiki5 · Discussion #7720 · GitHub
- Revision field, who is using this? Should I use it? · Jermolene/TiddlyWiki5 · Discussion #7719 · GitHub
- Provide api to read/write single tid file · Issue #76 · donmor/Tiddloid · GitHub