Tiddly Wiki is a totally self-contained PersonalWiki. No installation whatsoever required. All you need to do is save an HTML file on your harddisk, and visit it with one of the supported browsers. The data is stored in the HTML file. The wiki code is stored in the same HTML file. The CSS is stored in the very same HTML file. It’s amazing. It’s easy.

You put the HTML file with your wiki up one the web. People will be able to “edit” the file in their browsers, but they will not be able to save the changes. Nobody else will be able to see these changes. All they could do is save the HTML file to their own harddisk and start working on it. Merging these changes is tricky, however. This is why Tiddly Wiki is fundamentally a single person wiki, eventhough you can put it up on the web.

Since the wiki code is written in Javascript, this allows many other fancy features such as zooming animations, CSS menus, search, tags, user-editable CSS, and Recent Changes integrated into the same HTML file.

Since the entire wiki is stored in a HTML file, this makes it easy to send it to friends. Probably the size itself is not so much of a problem once you accept slow loading – there’s no inherent problem in a file of several megabytes.

Implementations with Server Backend

language of server-part implementation follows link in parentheses

open source

closed source


A few new points (by HansWobbe)...

I decided to place a short “update” here, simply because wikis continue to intrigue me and remain one of my preferred tools simply because they make me much more productive. In particular, I find it intriguing to observe the robust nature of the TiddlyWiki and TiddlySpace? development and users communities.

“tiddlyspace” is a server-side extension of the TiddlyWiki technologies that interacts nicely with TiddlyWiki client-side files. It has “namespace” support, making it relatively easy collaborate with others. I started playing around with this at http://HwWobbe.tiddlyspace.com/

During 2007 a new “core” TiddlyWiki WikiEngine was released as part of restructuring its architecture for the coming “MicroKernel?” design. Perhaps the most prominent part if the new core is the “backstage” that provides a foundation for the dynamic Import and Export of content.


  • TiddlyWiki and http://www.ProtoPage.com/ are both examples of what can be accomplished with AJAX concepts. They both provide appealing and interesting “enhanced” features that have “wiki”-like characteristics.
    • Extensive “Tag” support, especially in some of the main “adaptations”.
      • Since its more effective to demonstrate this, a link will be added to a demonstration TiddlyWiki file that is being crafted.

I’ve recently started using this as a photo album. In the process, I took a closer look at the internals of the file. Based on what I’ve done so far, I am not at all sure why the preceding comment that … “Merging these changes is tricky, however.” is valid. Since the “tiddlers” are self contained (and timestamped) all that I’ve had to do is add a version suffix to the name of a “twiddler” and copy the single line twiddler into a central repository. This approach can even be extended to store the twiddlers in a sqlDatabase, SELECT the desired ones, and append them to an empty HTML file that just has the javaScript code in it. Poof… Instant wiki tailored to meet the specific needs of a particular audience. In fact, it seems to me that I can easily share tiddlers this way with anyone at all, advancing the objectives of OneBigSoup quite considerably. I’m particularly interested in the approach of thinking of the file as a “boomerang chain letter” since I’ve sent out some pretty seasonal greeting cards wrapped in a TiddlyWiki, that link to my FlickR pictures. Ideally, people will be able to add comments and send back the file. Its also a very nice way to append comments to my collections of images, and store a file of these tiddly wiki notes (and their specific incorporated style sheets) in the same folder as the images. Then I can easily give people the images, and the wrapping album software, without worrying about any further maintenance as versions of software or style sheet change. – HansWobbe

Other points...

Oh, I believe that you can hack it so that it is a multi-user wiki indeed. And many people have, if you read the Google Groups for that project.

Yes, I can confirm that it is possible to hack it into a multi-user wiki. In my comment though, I was actually trying to correct the impression that “… Merging these changes is tricky…” (which is why I placed my comments ‘in-line’, as opposed to this current structure). It turns out to be quite simple to manage changes, especially when this process is ‘externalized’ by considering the ‘tiddlers’ to be independant Content blocks, that are simply “wrapped” (appended) to the current file. Another way of thinking about the tiddlers’ in this environment is that they are removable Content blocks that have wiki-style names as opposed to ‘purple numbers’.

I’m quite facinated by this approach since it allows me to think of the individual ‘tiddlers’ as ‘MicroContent’ or ‘miniPages’ that can be automatically assembled for each individual audience (of one individual target reader, even) and that can also be shared independently of the file (java script program) in which there are wrapped (sort of like a plugin, but of Content and/or program code.)

  • One developers is going so far as to make the ‘tiddlers’ executables that function almost like programming modules or subroutines.

(I’m not sure if this is of sufficient interest to readers here that I plan to keep expanding these comments as I explore this further, or not. If so, then it might make sense to create a separate page for TiddlyWiki, rather than overloading this PersonalWiki page.)

By the way; there are other ways of achieving the goal of “tagging pages without editing them”, than to build a Command Line Interface to a wiki. Since I am currently quite focused on TiddlyWiki (which has an approach to tagging that feels very nice to me), I am experimenting with adding tags to content, externally. If I then publish such a page of tags, it will be available for others to use. It might even be effective to make these tags appear “integrated” into CommunityWiki, by simply providing an RssFeed? to CW that can be integrated into its RecentNearChanges? page.

One other benefit of this approach is that it becomes very easy to also imbed additional ‘alias’ tags or tags that are only valid in a specific context (site or URL). This could then move us further towards the long-term goals of OneBigSoup.

(P.S. I am actually not quite sure what the relative merits of a CMD line approach, versus morphing a wiki so that it supports more options via “?action=” …, would be be.)

Heh! Okay, Hans: You’ve been pushing TiddlyWiki for a while here now. But when you mentioned that it supports tagging, that’s the straw that broke this lion’s back. ;D

I’ve downloaded it, and am playing around with it a bit. It is really nice; I like it a lot.

I’m going to have to think about it a bit, and try using it a few different ways.

re: integration of tags: I agree.

There needs to be (and probably is) some general protocol for publishing tags, and for sharing search capabilities (I believe this is called “FederatedSearch?.”) It should automatically attach “from hans wobbe” tags to all the tags you provide, or something like that. Similarly, it should also go the other way: You should be able to view communitywiki tagged material, and it should all come with “from communitywiki” tags. Or something like that. ;)

Gee, Lion… I really hope I haven’t been …“pushing TiddlyWiki”, especially since I’m really not trying to sell it to anyone. It is fairly rare for me to (a) find software that I really appreciate to the extent that I do this piece, and (b) have the luxury of having enough time available to be able to focus on both a new tool and the implications of its usefulness to me (specifically with respect to tagging - which I think may be as fundamentally important to use as searching is). In any event, I hope you enjoy it, since I would feel shamed if I’ve led you on a wild goose chase. In the mean time, I’ll let this subject sit for a bit since it really is spawned by ‘requests for Alex’ and then I’ll move it, perhaps to a page specifically for TiddlyWiki (unless that would once again be …“pushing” it :-).

Shoot; I’d meant to put more smiley’s in there.

There. I corrected my last post. ;)

No, pushing TiddlyWiki is quite all right; I think “pushing” some things is a basic community activity. “Guys, guys, … I think this is really interesting… Guys, are you paying attention? There’s this thing, and it might be really important.”

I don’t know; That’s my feeling at least.

I’ve been pushing the DataBall for a while now, and finally got around to making a page for it. ;)

Yes, we should have a TiddlyWiki page. :)

That reminds me: I once wrote a short story using TiddlyWiki.

I enjoyed reading Rose. And also learned a bit more about ‘style’ within TiddlyWiki. Thanks for sharing. I made an attempt at creating a TiddlyWiki page, but (so far) all I’ve managed to do is learn that PermanentAnchors? seem to get in the way of traditional page creation.

Since Alex was good enough to “show us his”, I guess I should reciprocate with my early efforts…http://janus.datafix.com/hwo/images/HwoViews.htm - the html file is a tiddly wiki that lives in a Read-Only space. I mention this because it makes extensive use of raw HTML, and I don’t want to cause anyone any security concerns.

I just rediscoverd TiddlyWiki, very nice. Have to start using it though, what are the wiki out there that use it?

It’s a PersonalWiki – you won’t find collaborative sites using it (unless they patched it). You can find some examples by checking out the original website. It has some links.

It certainly is a PersonalWiki, yet, to my amazement, I’ve gotten more collaboration going with TiddlyWiki in the last week than I would have imagined as possible. My preliminary opinions as to why this is…

  • In effect, I am creating a mini-wiki for each specific Audience (frequently as small as a single recipient.
  • I always try to include information that I know they will want to respond to, on a Subject in which I respect their opinion.
  • I generally include at least one, but not mmore than three other items that I suspect they may also respond to. This keeps from over-whelming them, and encourages them to focus on the primary reason I sent them a self-contained wiki.
  • I request that they edit the copy I sent them, and that they send it back (trivial for them, since its just an email attachment)
  • Upon receipt I use the excellent macros and plugins that are available from the thriving community of developers to automatically Import the new content in one of the dozed or so (growing like weeds - will probably become more than 100 before the end of 2006-01 - I can see that I will probably have to use the available plugins to feed directly into a sqlServer backend.)
  • The resulting library of MicroContent “Tiddlers” is truly impressive.
  • Finally, I re-cycle the accumulating content by sending them a second (third, fourth, etc) version that is considerable enhanced, always with content that they have expressed an obvious preference for, as evident in the prior response.

Its too early to predict where this will go, but it sure looks promising at ths stage.

- Add to this page, especially on the factes of…

  • Tags (LionKimbro, …)
  • TransClusion (determine if nesting works in this environment and if so, is there a depth limitation?)

Tiddlywiki gets even better when you start adding in some of the many interesting plugins for it. There are an enormous number of plugins for TiddlyWiki that allow a user to easily create their own customizations that are focused on whatever task it is they want to use TiddlyWiki for. The biggest repository for these plugins is at http://www.tiddlyforge.net/pytw. As new plugins are released or updated, you can find them on TiddlyForge? blog at http://www.tiddlyforge.net/

yes, I see now that it is a personal wiki. fabulous! I am just trying to play with it more, figuring out how to save it… – MarkDilley

I have a friend who uses it for collaborating with his friends on their university projects. They can’t be bothered to install anything special (“web server” scares them), yet they often need the wiki when there is no network available (during the lectures, for example). So they just carry it around on their laptops or thumb drives, and synchronize periodically.

This is off topic, but I feel the need to explain it. With respect to raw HTML and security concerns, I believe there is no security threat in allowing to post arbitrary code on a page as long as there is no sensitive information (such as passwords or session key) stored in the cookie (well, and the web browser doesn’t have gaping security holes).

The main concern about raw HTML is so-called “cross-site scripting” attack. If you can execute your own JavaScript code on some page, then you can access the cookie and all the information in it. Once you have this, you can act in the name of the user who enters such a page.

The worst thing you could do in Oddmuse is stealing the administrator password (I assume that, since you can edit the pages, you already either have an editor password or the site is not locked). The worst thing you could do on a read-only TiddlyWiki is breaking the instance that runs in your own browser.

I need to spend more time looking at the HwWobbe? TiddlySpace?. I now use TiddlyWiki religiously at work, though mainly for mundane purposes: Keeping notes on code, SQL strings, and various other things about work.

I have been inspired several times by TiddlyWiki, though I am always repulsed by the lack of a good development environment for JavaScript, and the crazy “language and environment that shift constantly beneath your feet.” Still, lots of great work being done here.

I recently discovered a setting generator for a science fiction role-playing game which generated all the info into a Tiddly Wiki. I think that is an awesome delivery medium.

TiddlySpace? provides Import and Export facilities for TiddlyWiki. Dynamic loading of tiddlers has been around for a while, but the “namespace” features of TiddlySpace?, combined with its “bag” architecture really is a nice generalization. In fact, TiddlySpace? now also supports different mime types, making is possible to have non-tiddly and non-wiki applications.

Define external redirect: TiddlySpace TiddlyForge RecentNearChanges RssFeed InfinitePage FederatedSearch MicroKernel HwWobbe PermanentAnchors

EditNearLinks: WikiEngine JavaScript FlickR


The same page on other sites: