Weekend Project: Get to Know LocalWiki for Local Information Sites

Wikis have a well-earned place among the ranks of content management systems (CMSes) as the de facto solution for crowdsourced, document-centric sites. But they are not one-size-fits-all. The encyclopedic style of MediaWiki is a good fit for Wikipedia, but TikiWiki makes for a better groupware solution thanks to features like access control and office document support. Let's take a look at one of the more unusual offerings among open source wikis: LocalWiki, which is focused on building community-driven, local information sites.

The LocalWiki project rose out of a particular community-centric site called Davis Wiki. Founded in 2004, Davis Wiki was geared towards providing an information resource for the Davis, California region — including everything from local businesses and features to local history, and documenting everything from major news events to lost pets. The software was written to be easy-to-use for non-technical people: no specialized markup language to learn, no preview-and-commit workflow, and no arcane diffs in page history — but very big yes on accessibility.

The reasoning goes that it is community members that hold most of the community's knowledge, so the software has to be usable by everyone in the community. Or, as the first year report put it, "on the local level, everybody's an expert" ... and the wiki needs experts. Fast forward a few years and the project had taken off so much that it was awarded a 2011 grant from the Knight Foundation to transform the custom site software into a reusable, easily-installable open source project.

The LocalWiki team also selected a handful of "focus communities" to work with hand-in-hand, getting feedback on the code and helping them to grow their own sustainable local project. The first was in Denton, Texas, in the Dallas-Forth Worth metroplex area. There are now six focus communities, and more than 180 independent LocalWiki installs worldwide.

The Software

The LocalWiki software is written in a combination of Django and custom Python code. In addition, it relies on PostGIS for mapping functions, the Apache Solr search engine, and the Jetty web server (which is a dependency of Solr). The package is pre-built for Ubuntu, and the project strongly encourages using Ubuntu as the deployment platform, but there are installation instructions for other OSes as well. By default, the wiki uses the CloudMade map server, which requires a free API key, but this is configurable.

The installation process itself is simple. You run the Python-based installer from the software package, create an empty database, and head to the web administration interface. Like any good publicly-editable CMS, there are frameworks in place to manage users and groups (including blocking accounts), control access to features (such as maps) by content type, and restrict permissions to specific resources (such as the front page). Each site is themable, can use TLS/SSL encryption if desired, and supports optional plug-ins for embedded video and other advanced features.

The basic operations are straightforward, though — by design. The LocalWiki team intentionally set out to simply the article creation and editing process, observing that open source wiki packages tend to rely on specialized wiki-markup languages, while WYSIWYG remained staunchly the turf of proprietary, commercial services. LocalWiki's editor uses a word-processor-like toolbar to directly edit page text with full control over text style, formatting, and page divisions; we have gotten used to the WYSIWYG approach in blog back-ends, but it is still a rarity on wikis.

More importantly, though, the WYSIWYG features extend beyond font styling to the aspects of page editing that newcomers are likely to need help with. It provides simple pop-up insertion boxes to handle links and images, automatically creates caption boxes, and even performs spell-checking. When you create a new page, it automatically searches to make sure that there is not an existing page on the same topic. A lot of work went into the revision-viewing feature, too. It provides clearer insertion/deletion highlighting than you will find in other wiki systems, and shows changes on rendered versions of the page (rather than in the source code).

What You See Is Where You Are

The biggest single difference that separates LocalWiki from other wiki projects is its integrated support for mapping. This is clearly a vital feature for geographically-local communities; every feature of a local wiki involves a place: where news events happen, where sites are found, where neighborhood boundaries are, and how to get from point A to point B.

You can add a map to every page; by default LocalWiki uses CloudMade map layers, but this is adjustable on the back-end. On each map, the page editor can draw several types of feature: point-of-interest markers, lines that serve as paths or travel directions, and polygonal regions. You can annotate maps, and the changes any editor makes to a map are visible in the page's revision history, just like text changes.

The project says that this map-driven alternative interface helps communities grow their sites in a natural manner, because many local "features" have loosely-defined borders — such as the bounds of a neighborhood or city region. There may be a specific, historical border between neighborhoods or subdivisions on file somewhere, but more often people attach semantic meaning to place names, and the delineation is not fixed.

LocalWiki also provides a map-based overview of the entire wiki site, where visitors can see all of the place-bound markers, points, and regions on one map of the city or community, then dive in to a particular region based on what they see. This can be a more natural way to explore a town, as well as provide visual cues to nearby topics of interest.

Progress

One reason that the Davis Wiki software was spun off into the LocalWiki projects is that other cities were interested in starting similar geographic community wikis — but the original stand-alone code was not portable or easily maintained. That has changed, and LocalWiki now makes regular releases. The latest is version 0.3, released March 29, 2012. It adds two new features of note.

The first is support for tagging articles. Tags are text-labels assigned by users; each article can have as many tags attached as the user community wants to add, and they offer an alternative means to navigate the site documents. Obviously tags are not a new feature in the software world, but it is surprising how slowly they have come to wiki packages. In contrast, MediaWiki's built-in semantic indexing feature is its categories. But LocalWiki tags are easier to assign (no source editing required) and easier for the reader to navigate.

The other new feature is a dashboard view for administrators. This gives admins an overview of activity on the site: visits, users, pages, and other statistics. LocalWiki's stats dashboard automatically creates time-based charts, so a quick glance gives you an indicator of the large-scale growth or health of the site.

LocalWiki has proven successful at motivating communities to create and curate their own content — take a look at Triangle Wiki for one example. But the ease-of-editing and simple map integration features are not intrinsically bound to geographically-local groups, so you might well ask if any of those features will make it into other open source wiki projects. The answer is apparently yes; the LocalWiki team says it is working on a more generic build of the package that will be useful as a general-purpose wiki infrastructure.

So no matter what topic you need to keep tabs on, you will have easy-to-use software to support it — which means more contributors from outside the relatively narrow realm of CMS experts and markup-language fans. If you want to start a LocalWiki project for your town, hamlet, or burg, the project provides a step-by-step guide to starting, building out, and sustaining a volunteer wiki project. Just don't forget to come back to the LocalWiki site and add your site to the map.