Multi User Alternative to TiddlyWiki

I would like to introduce a wiki at my work with approx. 30 user. I love TiddlyWiki and use it daily, but as far as I know it’s not really multi user capable.

  • First question: Is it true that TiddlyWiki is not multi user capable?

  • Second question: If it’s true, what are your recommended (and also not-recommended) alternatives?

I know the second question might be a bit offtopic in this forum, but I think in this community are really experienced users and I’m sure that I’m not the only person here who had the idea to introduce a wiki in a corporate environment. I would love to get any input regarding this topic. Also general tips/articles are welcome, because I think the hardest part is getting people to actually work with the wiki :slight_smile:

4 Likes

Taltessy,

I’m hardly the expert on what’s possible (or not possible) and why, BUT I have had two experiences with multi-user online tiddlywikis. First was way back in Classic days (2005-6ish?) when Zope-variant tiddlywiki 2 files (“ZiddlyWiki”) could be hosted on a server (objectis, IIRC). At that time, I used it for groups of advanced students. But the hosting arrangement ran into trouble shortly after (2007-ish?), and nothing has filled its shoes.

Since then, I’ve been eager to hear what might become available next for realtime multi-user collaboration.

During the peak of pandemic scrambling for educational solutions, @jeremyruston generously helped me (and a set of my students) with access to a hosted multi-user interface that he had been tinkering with. However that solution was maintenance-intensive (on jeremy’s part as much as on mine), and clearly not something that could scale easily to public use (in the way objectis for ZiddlyWiki, or tiddlyhost more recently, has been able to operate). It was pretty tricky to set up secure account/password sets for a group and to allow collaboration while managing permissions, preventing accidental overwrites, etc.

This does remain the biggest unsolved challenge for TiddlyWiki, especially now that so many people are giddy with the simultaneous collaboration experience of google docs, etc. Word processors are rarely the best tool for the job, but that real-time interaction is pretty impressive.

I don’t have a recommendation, alas. Just an echo of your eagerness for a solution.

Notion.

It kicks caboose in general, including multi-user capabilities. No fuss, no muss, no futzing about, no muckery. No installing anything, no technical stuff.

i.e. no dependence on an I.T. guy/gal.

Awesome as long as you always have an internet connection.
Awesome if you don’t need TiddlyWiki’s fantastic filtering and transclusion capabilities.

It let’s you get to the business of collaborating on content, knowledge, information, projects, schedules, whatever. Easy and pretty right out of the gate.

Although I can set anybody up with multi-user TiddlyWiki “Farm” (not “real-time” seeing of edits by other folk, but reasonably close), you can’t afford me to set it up for you, and you can’t afford to keep me around for enhancements/changes.

Multi-user TiddlyWiki needs an I.T. guy/gal (whether formally educated or self-taught). Somebody with a MacGyver spirit.

2 Likes

The bob.exe and plugin implementations of tiddlywiki run on node are multiuser wikies with contention managed at the tiddler level. This is ideal for multidevice access and teams on a local network.

Bob can be interent facing but it needs effort to secure it including a proxy and there are not many internet facing nodejs hosts.

However since it works well on the LAN an organisation could publish it on the internet with a VPN into the organisation.

2 Likes

TiddlyWiki needs an auth system to enable a real multi-user experience. We can store username and salted password in a tiddler that only the admin can see and modify.

If a user uses a password to sign in, tw server can give this user a JSON web token, and check that token when trying to sync change to the server. And the anonymous user will be read-only to the server.

I think this is totally possible to happen in tw, but will take some time to be implemented.

7 Likes

yes we can :wink: . I would add it also would need a revision-system like in noteself.

3 Likes

I personally think adding in an authentication system isn’t the best idea. If using this inside an org, they almost inevitably have some sort of SSO system like AD or OAUTH and storing passwords would make it more difficult to use from a compliance perspective. I’d like some sort of plugin system where you can have authentication modules that manage this rather than Tiddlywiki having some particular way to do it.

You could also design a similar system for managing authorization, but that is a more difficult problem for Tiddlywiki. For example, how would you handle read permissions for tiddlers while still allowing said protected tiddlers to show up in filters for authorized users? Write protection is a simpler problem to handle that is already partially possible with a syncer module.

3 Likes

This is true, there maybe OIDC / OAuth2.0 / SAML / AD / LDAP / Github login …

I think using passportjs passport - npm is a good plugin-based framework to build this. I have made an example GitHub - linonetwo/try-passportjs-gitlab-tiddlywiki: Try to get tiddlywiki run behind gitlab oauth2 to show its Gitlab login capability (single-user, though).

Apart from the login part, we still need a user record table in the tw, so we can track each user’s nickname and access control level. Well, this is too technical, maybe we can talk about this in another developer thread.

In this thread I’d like to recommend notion or coda. Thay don’t have powerful plugin system, but at least user control system is fine.

1 Like

Authentication and Authorization are interesting, but the basics are there. Header based Authentication can be configured, and Authorization is whole-wiki atm, either Reader or Writer. I am experimenting with adding an Admin Authorization type, along with adding in Yjs powered real-time-multiplayer (conflict free).

Lost my day job unexpectedly recently, so I’ve been stalled…

6 Likes

Sorry on losing job :frowning: .

I think your first comment is right. Looking at this issue a bit (I’d like my language students to be able to log-in by their email address to filter to stuff just for them). That I got working, sort of. But not yet stable enough.

TBH, in my use case, it is the combo of “save” and “login” that is my issue on singular wiki. I can’t figure out a consistent process.

Just a comment, TT

1 Like

I am confident their loss is the greatest. Best wishes in the next adventure. If it helps. you remain a key member of this community.

6 Likes

TT, a multi-reader solution is easier than multi-author, right? So a hack you (or other educators scanning this thread) might try is this:

Have students each access the site with a unique hashtag at the end, such as an email handle: (https://Institution.edu/lang-tw/#handle) As long as you don’t mind all the info being in there (in theory discoverable to any determined student), each hashtag node serves as a custom home-base for one student.

Note, this does not require creating a tiddler for each student! Instead, for each relevant content-tiddler, use the list field (or any other field approached as a list) to specify which students should see that item. Use a ViewTemplate element (like the NodeExplorer, or a custom dynamic table which can even have summary footers) as a portal into tiddlers that list the student (by their handle/nickname). This works even if the tiddler is “Missing”.

(I always blank out the $:/language/MissingTiddler/Hint since I use such hidden nodes frequently. I like not having actual tiddlers for the students, so they don’t feel like their nodes are on display for others to browse.)

Choosing hashtag handles: A nosy and savvy student can of course discover the list field technique, so I’d rather avoid handles that transparent and easy-to-explain like email or initials if there’s any info that would feel sensitive to students. (Initials do have the superficial benefit of being too short for quick searches.) My own approach is to stick to showing things that I’d feel fine about letting other students overhear, like the comments a coach would make in front of a team. Still, a system of opaquely-assigned nicknames – “Your url ends with #4Wa7” might work for a teacher who wants to include grading info.)

For a case like yours, the result could be: tips to review a certain grammar point show up at the custom hashtag url only for one subset of students, reminders about an overdue assignment show up for exactly those students who need them, etc.

-Springer

1 Like

Hmm. Javascript has encryption abilities. So there could be a macro for encoding / decoding tiddler content. I know Danielo had a per-tiddler encryption tool, but don’t recall if it allowed more than one password for the entire page.

At the top a student would enter their password.
Students would see a list of topics and click on a button for each topic that would decode the text into a temporary tiddler and then either transclude it or link to it. This way you could share info without having to worry about students seeing other student info. Unless of course they hack the 54 bit security. In which they are in the wrong class.

1 Like

Looking at how this discussion is going:

First question: Is it true that TiddlyWiki is not multi user capable?

Look at a product’s DNA. If multi-user collaboration is the top requirement, multi-user is not in TiddlyWiki’s DNA.

So consider something that has multi-user collaboration in its DNA.

IF TiddlyWiki filtering and/or transclusion and/or some other TiddlyWiki feature is the top requirement (I have a hard time making do without TiddlyWiki features that are part of TiddlyWiki’s DNA), and if you are inclined to, and have the time for, fiddling/hacking/caring’n-feeding add-on’s for multiuser, then stick with TiddlyWiki.

Multi-user does not seem like a trivial affair. (If it is a trivial affair, it is pee-poorly documented. In this very thread of discussion, all suggestions for multi-user TiddlyWiki kind of make my argument for Notion, but only if you can live without TiddlyWiki features that don’t exist in Notion.)

Pick the solution that involves the least pain considering all things in your world.

Second question: If it’s true, what are your recommended (and also not-recommended) alternatives?

I stand by the recommendation of Notion if multi-user collaboration is the top requirement.

Even if only for temporay use to flesh out requirements. (You learn what you need by rolling up your sleeves and collaborating on real-world stuff.)

Seems to me there is a fee for more than just a handful of users involved in collaborating via Notion (you’ll have to look into that). That may be a huge negative. If so, then I’d suggest an ecosystem of intertwingled Google things (Docs, Sheets, Sites, Calendar, Keep, etc.) which can be really smooth as silk if properly setup.

1 Like

Thanks @Springer and @Mark_S! I much appreciate your practical ideas.

I’ll try & comment back later.

Tx, TT

@Charlie_Veniot remember Bob, although limited in some ways is a workable multi-user tiddlywiki and we are free to place a user layer on top.

I do remember Bob. It ain’t for me. (I would neither recommend it nor dissuade use of it.)

But it is for some. I leave it to them to recommend it and how to use it.

You basically can have 1 PW per tiddler. …IMO the main problem he had, was managing the passwords and using the same PW for several tiddlers.

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