I smell a project coming on.
For quite a long time now, I've had the ProWiki technology sitting there, gathering dust. For those who are new to this story, ProWiki is a wiki system that I wrote the better part of 10 years ago now. In one sense, it's quite primitive: it's based on UseMod, one of the very first wiki codebases, is written in mediocre Perl 4, and looks extremely plain. But at its heart, it is quite radical, because it's actually an object-oriented database masquerading as a wiki. Each page is treated as an object and can have properties; there's a concept of inheritance so that you can have well-defined semantics; there's even a horrible but effective query language so that one page's content can actually be a query into content defined on other pages. The result is that it's excellent for certain use cases -- in particular, for LARP writing, which is what I developed it for in the first place.
The reality, though, is that ProWiki is way too damned primitive in many ways, and the name (which stands for "property-based wiki") steps on one that an unrelated group turns out to be using. And the idea of putting properties on pages has been used in a few other systems -- to a limited degree in Twiki, and to a much better degree in the sadly-unstable XWiki. None of these really hum for me, though, so I've long been wanting to start again from scratch. That project has long been known as Querki (for "queryable wiki"). I have the domain sitting there, and pretty extensive design and requirement notes. I haven't done anything with it, though, because building websites is such a pain in the ass.
But now along comes Lift, the Scala web framework. I know Rails well enough to know that it is still a headache, but Lift is terribly appealing: as is usual for the Scala community, they've stepped back and really thought things through. Today I stumbled across the Seven Things page, which underscores this: it's simply a list of common web patterns that are a pain in the ass to implement in most frameworks, but dead-easy in Lift -- most of which are crucial for Querki.
So I think I'm sold. I've been looking for a good excuse to write a serious project in Scala ever since CommYou got aborted in mid-implementation, and this looks like a fine opportunity. Not that I have any free time at all, mind, but I think I need to start playing with this, because it looks like altogether too much fun...