Multi User Alternative to TiddlyWiki

TiddlyWiki absolutely can be used for multiuser deployments.

I’m involved in a project that has several hundred individual wikis with over a thousand users:

https://manuals.annafreud.org/

That implementation uses Amazon serverless primitives, and is not completely open source.

I know of at least one company that runs an off-the-shelf TiddlyWiki Node.js server behind a proxy as their intranet knowledge management system.

There’s no doubt getting TiddlyWiki up and running will be much more involved than getting started with commercial products like Notion and Roam, but it doesn’t require much maintenance once you’ve found an approach that fits with your existing infrastructure.

9 Likes

The annafreud project is amazing!

What would it take for us all, as a grassroots open-source community, to beg, borrow, steal, or honestly develop a solution structured more or less like that one? (I don’t have deep pockets, but I’d pitch in my share!)

I’d also be interested in an intranet multi-user solution if the connection to SSO were simple enough to hand a clear package of installables over to my university IT folks without myself being an IT folk. Still, the most amazing goal would be a system that works easily over the web.

-Springer

Here’s another suggestion for live collaboration : visual studio code. You can use the plugin Visual Studio Live Share to enable realtime collaboration, and use another plugin to add wiki-like features to visual studio ( WikiLens seems promising). You dont even need to install visual studio code, you can use it online : https://vscode.dev

Other interesting solutions :

  • Features - CodiMD : real-time, multi-platform collaborative markdown note editor
  • https://etherpad.org/ : open source alternative to google doc
  • mattermost : open source platform for developer collaboration (apparently the CERN used this)
  • Microsoft Teams : ideal for students

However if anyone can provide a tutorial on how to setup a real-time multi user wiki (with or without Bob), I’d be really interested.

4 Likes

Yes, yes. Very. I looked at it about a year ago. I think it is an amazing meld of developer (@jeremyruston) input + clients who are very good at their jobs.

https://manuals.annafreud.org/guide/

TT

2 Likes

Thank you!

One literal barrier is that right now, the backend used for Anna Freud is not open source. I did intend to make Xememex open source but didn’t do it at the beginning and so it has become a big job to get everything into shape so that others can use it. But it something that I have always intended to do.

The actual AWS running costs for Anna Freud is a few hundred dollars per month, which is relatively high. I architected the system for flexibility rather than the lowest possible cost profile, and I’m pretty sure the costs could be much lower if required.

I’m not sure how far a community run hosting service could get. It’s not something that I have seen done by other open source communities. The key issue is that providing free hosting for material created by other people can be a hazardous business: hosting services have to deal with legal and regulatory issues like spam, malware, and DMCA takedowns. Making a service subscription only mitigates the problem because paying customers are not incentivised to do the bad stuff. Then once one has paying customers they have a right to expect a commercial level of service, which I suspect pushes the centre of gravity towards running it as a commercial operation.

But the fact remains that the technical components are in place. It’s kind of a business problem to figure out how to effectively deploy that capability in a way that is sustainable and meets the needs of the community.

8 Likes

All,

As a Tiddlywiki super user (not a coder) and an IT professional with some professional security expirence I have spent sometime looking into Tiddlywiki for teams. Bob is already appropriate for fully trusted teams if it continued recieving updates at least. More people should fund Jeds efforts to support bob as I do myself a little.

Bob is Suitable on the LAN or via VPN, I would leave it to others to comment on internet facing security.

Although a user managment layer would be good, this can be built using existing tiddlywiki features as long as you trust your users to some extent. I have researched this extencivly and done a proof of concept for most of the needed components.

I also have a proof of concept for multiuser single file wikis using serial editing. Ie check in and check out.

Some limited private content on a shared wiki is possible, although larger volumes of private content may be better retained outside the core wiki. There are some smart ways to do this which I will not detail here.

Like all solutions we always need to start with realistic business requirements even more so with security needs. There is quite a big range between a simple user selection and a very secure environment and the needs drive the solution. It is my informed view, that especialy with already trusted teams, we already have the capacity to address a large percentage of the possible senarios. If you start undertaking a review of requirements for a team solution you quickly discover there is a vast range of details and circumstances, degrees of risk and comfort with different requirements.

There is already a large number of internet facing secure solutions depending on the requirements, but not multiuser high security.

I am confident we can already address a large number of the multiuser and security issues to deliver practical solutions. For me however I do not want to work on this on my own and I must find an income.

If you have a genuine interest in collaboration or the capacity to fund such an activity please contact me privatly.

1 Like

Mark, Good point. My solution is a “lazy” one, in that I could make a single announcement: Your url hashtag is your initials (except for a pair of students who needed a disambiguating middle initial), and tossing initials into a list field was easy to remember and easy to troubleshoot. Assigning passwords and setting up encryption for each student was more administrative overhead than what I wanted for a large class. But, as your note, tiddlywiki does indeed have great encryption tools, so a multi-audience tiddlywiki could serve up grading info along with other student-specific tips.

Hello @joshuafontany ,
sorry for loosing your job. We should have a sort of Patreon-system in TW for such cases because the work you intended to do with y.js sounds really inspiring. Realtime-cooperation is really something that TW lacks.

Hi all, newcomer to TiddlyWiki. Love this discussion so far! What if we relax the requirements for a multi-user system based on TiddlyWiki? I am looking for this limited setup:

  1. Open Access to the wiki, no support for private posts.
  2. <20 total “users”.
  3. No need for the concept of a user but rather a creator, ie have a special tag for who created a post but all can edit/access all posts.
  4. Ability for read-only access simultaneous from several machines but a single post can be edited only by one author at the same time (some locking mechanism maybe?).

Can this be achieved by storing the wiki on a shared database in the cloud and have some sort of locking when a post is edited or maybe use optimistic concurrency?

@OMyCaml this does sound like Bob and Bob.exe all you need to do is add a user selection step.

1 Like

Using github actions, I can think of another way, that doesn’t involve “next generation” or non-available tools. It’s similar to twederation, but depends on generic technologies.

There is one central github page. Everyone in the group loads that page. But they use their own repository to save back to. The action script periodically grabs each user’s page, and extracts the tiddlers. Each person in the group has a designated tiddler prefix. So “John” might title his tiddlers “John/Discussion re multi-user alternative”, and “Susan” would title hers “Susan/Discussion re multi-user alternative” The script would only pull “Susan” tiddlers from Susan, and “John/” tiddlers from John. So no one could write over anyone else’s work or pretend to be someone else. Then the script would compile a new master.

From the user’s standpoint, once it is set up, all they do is take notes and save them (remember, you can save to a repository that may be different from that of the page you are viewing). Periodically they will reload to get the latest changes from others. Only their notes prefixed by their names (e.g. John, Susan) will get picked up. Threads could be created by stripping off the prefix and using the following portions as thread titles sorted by modification times.

2 Likes

@Mark_S interesting idea! I’m new to TW - does this mean that github is already a supported backend for TW?

Mark. I was thinking somthing very similar but giving the owner of the shared wiki the option to review “shared tiddlers” at import. As long as we provide nice guidence or workflow to the consolidation process even like editorial control I think it has some interesting possibilities.

I have also thought about

  • not importing some tiddlers for the user to have private tiddlers.
  • allowing an edit request for a shared or user tiddler
  • provide an interuser messaging path.

We do!

We’re trying a couple of things:

Fundraising like this has worked well for other projects and people, and I’m interested to see how it goes for us.

1 Like

There is some interesting discussion at TiddlyHost regarding multi-device/multi-user usage of single file wikis:

Consider solutions to avoid losing data when using tiddlyhost on multiple devices · Issue #219 · simonbaird/tiddlyhost · GitHub

1 Like

What are the options for TW storage? Is postgres supported?

Thank you so much for all the answers!

To sum this thread up for me: TiddlyWiki will not be my solution. I want an internet facing Wiki with strong security and a reliable permission model (I want also to set up accounts for our customers with restrictive read permissions) and I also don’t want to spend to many time to set it up.

So now let’s look at some alternatives:

I read a lot of good stuff about Notion, but I think the biggest problem I have with Notion is that there is no automatic backup function. What happens if the company behind Notion is bankrupt tomorrow and the servers are down? Can I easily change to another software with the backup? If I read correctly this is not possible.

To avoid such problems I would prefer to host a wiki on our own server. If there is a real unique and awesome wiki, which you can’t host on our own servers, than it needs at least an automatic backup service (to a source of our choice) and an easy way to migrate to another wiki software.

Currently on my shortlist:

  • DokuWiki - this seems to be closest to TiddlyWiki: no database, flexible and easy to customize with lots of plugins. Free and open-source
  • BlueSpice Wiki - based on MediaWiki with additional tweaks and plugins. The free version is free and open-source, the pro version costs 3100€/year with on-promises installation
  • XWiki - the base version is free and open-source, with the Pro version you get additional plugins. 2000€/year with on-promises installation

What I really like about TiddlyWiki and which would be nice to have on the other wiki software is an easy way to create templates and buttons. It should also be user-friendly for non-coder.

Any thoughts?

xwiki, I found it a very hostile wiki. tiddlers must be linked with their location. even in the same place. change location, yours links are broken. I have not been able to wikify anything useful with it.

If anyone knows a good resource to understand xwiki core wiki (I’m not interested in programming in xwiki if I can’t wiki with it in the first place), I would really appreciate any links for them!

According to the XWiki documentation the links should be fixed when you rename a page:

By default (unless advanced users uncheck the box), all internal references in the wiki to the renamed page (and child pages) will be updated to point to the new location of the page (this includes links in content, values of wiki macro parameters, etc.)

@Taltessy Thank you. However, this full length necissity is not user friendly. It does transform [[bar]] into [[/dir/fu/bar bar]] or something like that and mostly without added value. A mode allowing [[bar]] or a set of rules allowing it really lacks.