Confluence is the Best

Over the past couple months I’ve been using Atlassian’s Confluence wiki a lot (and am finally reaching the comfort-zone in putting my personal stuff on there — it’s true that geeks trust software less). As is my predilection, I’ll make some lists.

Confluence has a whole lot of features that are requirements on purely logistical/organizational level:

  • LDAP authentication (uses Open Symphony) – looking forward to better group integration w/ LDAP soon. This is a biggie, there’s almost nothing else out there
  • Multiple database support – we started w/ the embedded HSQL, but there’s full JDBC support (uses Hibernate) but we’re moving to either production Oracle or MySQL. The nice thing is that w/ the database-exposed, it’s very easy to write scripts that fix weaknesses in the Confluence interface (their group adding, for instance, is quite a turgid affair for mass users at the moment)
  • Spaces – Confluence supports multiple spaces which can have separate namespace, permissions, themes/decorators, layouts, input templates, etc, while still sharing and being able to both easily interlink between spaces and to move nodes between them
  • Affordability – obviously a higher sticker price than the open-source alternatives, but run the numbers of an enterprise license against the recurring cost of the ASP solutions, and compare featursets

Jumbled thoughts, comparisons to others:

  • Not-wiki – many of what distinguishes Confluence (and others, say Jot) are the un-wiki parts. The parts where there semi-structured data or relationships, or things like authorization, roles, and access controls. For some reason, almost all community-based wikis are just plain weak in these areas (is it stemming from dogmatism, or is it just not fun to work on? Personally, I think semi-permeability is fascinating both in UI and technical terms)
  • Child Entries – Confluence has all the things that you’d expect a good wiki to have: templates, plugins/macros, RSS, permissions, searching, PDF export, attachments, transcludes, an API, skinning, spaces, comments, etc. But, what really makes Confluence shine, is its ability for having parent-child relationships. I’d love to have even more, but this little thing is a 100% improvement for regular people. Here’s a screencap of an example (note also, columnar layouts, hallelujah)
  • File revisioning – this is another one of those duh things, and you have to wonder why you don’t see this more. Having in-file search is also nice (Lucene good!)
  • Comments – Yes, there are wikis that don’t have this, and I can’t understand why.
  • Node types – Confluence doesn’t take it as far as one might, but it’s still the right direction
  • Reasonable UI – there are things to tweak, but compare it to most of you’ll find on the community side…
  • Macros – especially the panel/info macros are indispensible
  • Data Munge – there’s a warm fuzzy feeling of direct data access, and Confluence’s data model is quite straightforward to work with. Also, the XML exports export everything, including attachments and users/groups

And now, the feature request list. Some of these are trivial improvements, some of these are features that are done, or done better by other wiki software (Trac, Xwiki, Twiki, Jot, SocialText), and some aren’t implemented by anyone at all:

  • Better macro documentation – I use a lot of the macros, but am always forgetting the exact syntax for some of the settings (especially for tags like {children} which I don’t use as often)
  • Easy source view – you sort of want to be able to flip a div to see that somtimes
  • Email handling – Confluence has mediocre email-handling (Jot and Socialtext are better). You ideally would like to have mail go into a central queue and also to allow automatic routing based on a simple text-based API. It’d be a great thing to just cc project emails in that way
  • Tags/Categorization – easy categorization of items would be a really useful (and in keeping with the “tag everything” mentality)
  • Better RSS – Confluence currently puts out a select list of RSS 0.92 information. Ideally, it should do RSS everything
  • Tasks – Atlassian also sells JIRA, an issue/defect tracker, so I don’t ever expect Trac-like functionality, but the current {tasklist} macro could be made much more useful (allow global access, etc), or better yet, tasks could be a node-type…
  • Custom nodes, intranode – Confluence is part-way there w/ the macro system and input templates, but what you really want is what Xwiki, Twiki, and Jot are doing – creating an engine for arbitrary handling of semi-structured data (design forms w/ fields that allow manipulation and recombination)
  • Sections – MediaWiki or PurpleWiki do this better…
  • Fine-grained Access control – having rights management extend to the page (and page-and-children) level would be great
  • Daily summary – Trac has a great daily summary view. What would be interesting would extend the basic (but still useful) blogging functionality to also autogenerate daily summaries (perhaps attached like how Tom does his daily links)
  • Easier editing, appending – I’m not sure what I’m looking for, but it seems like there might be a way to make adding things easier. Maybe not without a rethinking of what consitutes a ‘page’ (views as aggregation of nodes)
  • Dynamic TOC always available – right now I can put something in the layout perhaps, or create templates that automatically have a column for the TOC, but being able to see where you are and navigate around would be huge. HUGE
  • Quick Links – I’ve had this idea that often-times on a wiki, you’re editing certain pages a lot. What if you had a custom quicklinks area that you could just add…
  • Per-person/category views – This would especially be useful for the blogs, but being able to filter (or display side-by-side in lists based on category, author, or a combination there-of would be quite fun)
  • Reparenting interface – I want to be able to go to the dynamic TOC, or some standalone interface and just drag things around (or at least reparent w/o having to go into editing a page)
  • Ordering children – right now it does it alphabetically. I’ve spoken at length about the blikiliner in the past…
  • Annotations – comments on the bottom of the page are really a degenerate form of the more multi-purpose general for of an ‘annotation’ relationship. There are issues to think bout in terms of change management, etc, but give it some thought. It may blow your mind.
  • Better diffing display – Well, there’s History Flow now, but even more simply, the best diffing display I’ve seen was Mark’s use of Aaron’s HTML Diff

For an individual user, the licensing doesn’t make sense, and Xwiki looks like it’s really cool and might be good in that case (or Twiki if you don’t mind getting in the muck and doing major hacking).