TiddlyWiki manages to be surprisingly useful without needing a serverside at all. A static TiddlyWiki HTML file can be put on any web server and benefits from highly optimised performance for static files.
All those dynamic serversides like TiddlyWeb (and TiddlySpace) can actually be seen as a step backwards by requiring the server to process individual requests and stitch together a custom response string. The result is several orders of magnitude slower than serving a static file. In practice, caching helps a great deal, but the result is still slower and more brittle than serving a static file.
It has also turned out to be quite hard for a server to efficiently generate HTML representations of individual wikitext tiddlers on the fly. The problem stems from the way that tiddlers can reference and include other tiddlers - in fact, in the worst cases, the entire TiddlyWiki document might need to be processed in order to generate a single tiddler.
This suggests one simple approach to providing serverside support for TiddlyWiki: to run a long-lived serverside session process containing an instance of the TiddlyWiki client code modified to allow tiddlers to be retrieved over HTTP. However, performance would be pretty terrible, particularly if users were required to be authenticated and to each have their own dedicated session.
An attractive hybrid approach might be to maintain all content in static files that can be served directly by the web server, and just to use a serverside for handling updates.
The existing client side machinery for efficiently updating onscreen representations of tiddlers as their values change can be re-purposed to efficiently update on-disc representations of tiddlers.
All those dynamic serversides like TiddlyWeb (and TiddlySpace) can actually be seen as a step backwards by requiring the server to process individual requests and stitch together a custom response string. The result is several orders of magnitude slower than serving a static file. In practice, caching helps a great deal, but the result is still slower and more brittle than serving a static file.
It has also turned out to be quite hard for a server to efficiently generate HTML representations of individual wikitext tiddlers on the fly. The problem stems from the way that tiddlers can reference and include other tiddlers - in fact, in the worst cases, the entire TiddlyWiki document might need to be processed in order to generate a single tiddler.
This suggests one simple approach to providing serverside support for TiddlyWiki: to run a long-lived serverside session process containing an instance of the TiddlyWiki client code modified to allow tiddlers to be retrieved over HTTP. However, performance would be pretty terrible, particularly if users were required to be authenticated and to each have their own dedicated session.
An attractive hybrid approach might be to maintain all content in static files that can be served directly by the web server, and just to use a serverside for handling updates.
The existing client side machinery for efficiently updating onscreen representations of tiddlers as their values change can be re-purposed to efficiently update on-disc representations of tiddlers.