I’m trying to figure out how to deploy several wikis where—for each independently—there will be a handful of editors and many more viewers who get a read-only view. I was wondering if others have managed to get something like this running.
In the cases where I’ve done something close to this, my editors have been tech-savvy users of Nodejs and git; in those, I could just deploy with GitHub pages, allowing the user to run Node locally and push git changes at appropriate times. Rare merge conflicts can be handled through git tools. When running in Node, the edit interface is visible; when running stand-alone, including through GitHub pages, it’s hidden.
In the cases I’m trying to figure out, the additional editors do not have those skills. So far, I’ve been the only editor, but I really want to open these up. For instance, there’s one for which I’m one of two co-Chairs for an organization. I would like the other co-Chair to be able to modify most of the content, for the Secretary to be able to posts agendas and minutes, and for the Treasurer to post financial reports. However, I’m not looking for a granular permission model. I’m perfectly happy if anyone with edit rights would be able to change any content. I would expect to still do all the infrastructure work myself.
I would like to do this without passing updated versions back and forth.
I’m quite willing to consider other options, but right now my dream scenario looks like this: When a non-editor visits, s/he gets the read-only view, hiding all buttons and toolbars that don’t affect her. (When MWS is complete, I would hope this could be done with a bags/recipes model and not even send the edit interface to these users, but I wouldn’t be upset to continue my current technique of simply hiding it in a Startup action.) When an editor visits (perhaps at a different URL), s/he authenticates somehow (probably an OAuth server, but we’ll see) and has all the edit tools available. As s/he saves tiddlers, the server commits the changes to git, and on demand or after a period of quiescence, pushes the changes back to the GitHub repository. There might also be a mechanism to declare new versions when you choose to manually push. I don’t know what the best synchronization model would be, but these are low-activity wikis, and I could live with almost anything for that.
So… any ideas?