I have now been playing with TW for a week and tried both the stand alone and Node.js Version. I’m hoping to read from more experienced users which version you run and what you considered when making that choice. My primary interest is scalability and portability. Right now I’m hosting the Node.js version on a server and backup Tiddlers with git. However even with a small wiki I notice the load times (especially on mobile) and I wonder if it would be better to host a single file in a cloud storage. Any comments welcome, thank you!
I’ve settled on TW 5.2.3 single file, development instances and private instances hosted on Google Drive.
Publicly shared instances (aka "published production instances) hosted on https://neocities.org/
Only you can know if your needs/requirements would be better served by a single file stored in cloud storage.
You should try it, evaluate it, and compare your experience.
I would think the dichotomy is not between “experienced vs non-experienced” users but rather “deeply techy vs not as techy” users. I am definitely an experienced TW user but I just never got into “hosting servers”, “git”, etc and this is very likely why I’ve always stuck to single file TW. I even make it super simple; I put basically everything on Tiddlyhost (previously TiddlySpot).
For load times if you use the node.js version, did you try lazy loading?
5.2.3? I can understand 5.2.7, i.e the version before 5.3.0 but why an arbitrary year old version? U missin good stuff.
I have a straightforward philosophy re software. I upgrade only when it hurts too much not to.
Post TW 5.2.3, all of the new features are a very unappealing distraction to me, so I stick with TW5.2.3, with copies of both v5.2.3 version of TiddlyWiki.com and v5.2.3 of empty.html handy when I need them.
Yeah, I very much dislike all of the additions and changes made since v5.2.3. For my needs, the new stuff is gumming up the works.
So until some new version solves more problems for me than it creates, I stick with what suits me best.
I keep old iterations of my TWs, as well as a blank ‘template’ TW with my customizations in it that I push through the TW updater, so that when its up and working on the latest, I can import my most used tiddlers into it and archive the older ones into folders on my SSD.
I do this to explore newer features and fore various fixes to things that might of been a problem with older iterations. typically I don’t mess with a lot of the newer features as I’m not at a level of experience to really utilize them past examples people post here, but having the option to use new features is always welcome.
I’m not really a rolling release sort of person (for the longest time I just stuck with debian for instance) but I found TW to be worth keeping regularly up to date on
I have used node.js, but I found three things always luring me back to single file TWs:
- node.js is rather invisible. Whereas I can bookmark single files. I started projects on node.js then forgot they existed because there was no bookmark or link to remind me.
- Opening node.js requires several steps (open the command thing, remember what to type, do the multi step typing, then open the browser and add the 180.0… thingy.), so just getting started involves friction, which is conducive to my lethargy. Opening a single file is one click.
- I am not sure but I don’t think one can have two node.js’ open at one time in a browser, whereas I can have multiple tabs open with single file TWs.
You can have as many as you want, as long as you launch them each with their own port number. Which then gets you into the business of having to remember which instance goes with which port number. You can avoid this hassle by using tiddlyserver, though I don’t know what its current status is.
I have a number of various TWs, however there are two primary ones I use all the time.
-
My personal journal - currently it’s 6414 tiddlers. It also has external links to hundreds of gigs of videos, photos, PDFs, and other files. I had some problems with the 5.3.0 export, so I’m back to 5.2.7 which has been extremely stable. I’ve had this on Node.js in the past, but I don’t see any advantage. The speed is just as fast as a single file, even with 6000+ tiddlers. And it’s super easy to backup. I have an KSH shell script that archives it with all my externally called files into TAR/BZIP2 stores which are also copied to Dropbox and Google Drive for extra redundancy.
-
An inventory system that I wrote in TW5 for my workplace. This is running on Node.js, hosted on a Raspberry Pi 4. It’s multi-user and rather large with lots of integrated PDFs (not external calls). Had to use Node.js for multiuser and also for no barriers on growth.
You could do both at the same time via TiddlyServer.
Which version of TiddlyWiki do you run? Why?
I would say the “lazy latest”.
When a new version is release I will do a little testing and update my key wikis to the latest. Remember backwards compatibility is strong.
The balance of my wikis remain what ever version they are until I visit them and do any design changes, when I tend to upgrade them to the latest. If I don’t make any design changes, there is no need to upgrade, but sometimes I do, especially if others may access it.
I do install a custom package to wikis under my management, this includes a button for easy upgrades.
- For file:// wikis - Click, upgrade, Ctrl-v, Upgrade button, download, ctrl-V, save, overwrite, and reload the wiki tab.
A “design change” is modifying TiddlyWiki script, installing plugins or packages with TiddlyWiki Script.
Thank you all for your interesting perspectives! Reading [BUG] Renaming tiddler with lazy-loading enabled can delete other tiddlers' bodies · Issue #4767 · Jermolene/TiddlyWiki5 · GitHub I am a bit cautious when it comes to lazy loading. I also do use Relink as I often capture a thought quickly and clarify later that is essential.
It seems that the single file version is the more popular one. Luckily it’s super easy to switch between the two which I am amazed by!
I always use latest prerelease nodejs tw in TidGi app. It makes open nodejs wiki just need one click on app icon. And can manage multiple wiki, save tiddlers as .tid files.
By using nodejs tw, I can easily manage my 100M+ wiki. And by using TidGi, I can start nodejs wiki without using terminal cli, which is error prone.
This looks very cool! Do you use lazy loading with that large wiki? Any other tips for scalability?
I enable lazy-image in TidGi by default. And for my wiki I use lazy-all.
Most of desktop note app are lazy, Notion, Obsidian. So this should be default for TidGi. But this mechanism still have bugs to fix, so TidGi will be 0.x before I fix them in tw core.
I use the most recent version as a single file. I keep the file on my phone and serve it with WebDav via the RCX app. I have a shortcut to it on my homescreen, and can serve it to the local network at home if I want to use it on my computer. The only issue with this approach is that you can’t control the caching. So, sometimes I will see a version without the most recent changes. I’ve gotten used to just refreshing if I’m not sure though.
I use single file tw’s (latest version). Served from a cloud host (transip) that supports webdav (and sftp). This way I can use it on mobile and anywhere on a desktop. Maybe will use Multcloud to backup to other clouddrives (onedrive,icloud,google).
I use node js tw, hosted in a minipc that runs 24/7 and served through tailscale.
This allows me to access my tw from my iphone and laptop on the go while mantaining it unaccesible to everyone else.
I use last or second to last version, usually because a little old versions are good enough for me and my students (I use TW for personal knowledge management and university/grassroots classes/workshops).
The important think for me are plugins and default theme, which usually are packaged in a particular wikis like Projectify and the excellent variants from @Mohammad, mainly Shiraz and Mehregan and Krystal Whitespace.
What I would like is to have a custom build version with the things I like the most of each wiki variant. We have created several mods, but still I would like to have a programmatic way of creating them, instead of taking the most visually compelling one (usually are based on horizontal scrolling like in Krystal variants) and start to customize it by dragging and dropping plugins. This programmatic extension and manipulation of TW is what we’re exploring with TiddlyWikiPharo and we have in our radar also Gatha Studio and Tinka.
I have three main use cases for TW.
One-offs
When ever I need to make a one-off document which I want to dump content into in a brain-dump way with links and good presentation and interactivity I’ll use an empty.html copy that I will store on a USB drive, Dropbox, or on my personal web site.
For longer lived Single HTML files I may use Timimi for saving convenience.
The version I use is typically the version at the time I fetch the empty.html
from https://tiddlywiki.com
I find that only when I update its content then I’ll might take the time to upgrade it otherwise I leave it as is.
Daily note taking / task tracking
With this situation I use the Node.js version. I run it via a launch script so it is available when I log in and I run a backup script daily via a cron job. My backup script is a Bash script that archives the wiki directory to another directory and then removes archives till the latest 12 files remain (twelve daily backups).
For these I typically upgrade the moment I notice a new version on https://tiddlywiki.com and do so by npm install --global tiddlywiki@latest
and restart the launch service.
Personal blog / Website
In this situation I take far more care into the structure of the tiddlers directory tree and I store it in Git. I upgrade by adjusting the version in the package.json
. I will run it as a server on demand just to make changes or I’ll edit the tiddler files with Vim.
To deploy I build the site and rsync it to my web hosting service.