November 27th, 2006


Hmm. How does one build an open source community?

One side-effect I'm observing, as I work on the Girl Genius game for Intercon, is that it's getting me fired up again for the Querki project. The GG LARP is being built using ProWiki, the pseudo-next-gen wiki system I hacked together from the UseMod codebase. That functions adequately, but it mostly is reminding me that (a) UseMod was a pretty crappy and ancient codebase to begin with, and (b) I could do *so* much more if I did this from scratch. The more I learn about wiki-tech, the more appalled I am at the way most of them work. Most of the code I've examined is pretty dreadful (yes, I've dug through many of the "big name" wikis, and even most of those are pretty mediocre structurally), and the common religious orientation towards being world-editable prevents many from being all that useful for my kinds of practical work, by winding up with miserable access control. And none are flexible enough to easily change the back end as dramatically as I need to.

So it's pretty clear that I'm talking myself into moving forward on Querki, the true next-gen wiki that I've been gradually designing, and I've largely talked myself into starting from scratch. At the core, it's very different from ordinary wikis -- a sort of hybrid between an OO database and a wiki -- and I have a clear idea of what that wants to look like. But it's also clear that, if this is going to be a serious tool for general use (which is the objective), it will also eventually need the various bells and whistles that folks expect of a real, enterprise-grade wiki these days. And that means that this is more than a one-man project.

Which leaves me with the slightly daunting prospect of creating an open source community. I have only the vaguest idea of where to start. I figure that I'll probably build the initial skeleton of the system myself (starting after the game runs in March, and I have some time again), but once that's put together I really need to puzzle out how to attract a good group to work with me on this. I'm also going to have to learn how to steer the thing appropriately -- how to let the other contributors have their heads without letting the thing dissolve into a puddle of ill-designed goo.

It's an exciting prospect, but *quite* scary. I've worked with plenty of software projects over the years, but my experience with open source is pretty tangential. If anyone has any pointers on how one kickstarts a project like this, I'd be interested to hear them. (And if anyone might want in on the project, do speak up! It'll be the middle of next year before it all begins coming together, but I'm starting to get my ducks in a row now, and it would be encouraging to know that there are programmers interested in helping out...)