Forum design

0 views
Skip to first unread message

Joshua A.C. Newman

unread,
Dec 31, 2009, 12:24:33 AM12/31/09
to mortar-de...@googlegroups.com, John Stavropoulos
Hey, guys, I'd like to start talking about forum design.

  • I use Vanilla quite a bit, and I like that it has an unusual take on fora, listing conversations by topic, rather than listing topics. That means that you see everything that everyone's talking about, but it sort of takes the teeth out of topic categorization — things wind up getting stuffed in the default topic most of the time.
  • The various other practically-identical fora really don't move me. I have specific issues with them, but they pale compared to the "BBS but with icons" interface.

I'd like to think about new ways of interfacing socially. We can learn from others, but I have some off-the-top-of-my-head suggestions.

  • GIve an option for users to be "confirmed" by checking their Facebook account. Do they have friends? Great! They're who they say they are!
  • Make "threading" happen in a way that makes conversations easier, rather than harder, to follow. Indented lists do not impress me. I'm seeing a visible tree structure with responses diminishing in size into the distance. Popular thread directions are visibly heavier. I'd suggest being able to mark posts as "interesting", which means you know which one to go back and read from. It also gives built-in "I'm listening" feedback to a poster.
    • The ability to move posts and their associated sub-threads around would be useful.
  • WYSIWYG editor, obviously.
  • Posts need not — and indeed should not — span the screen. They should be little chunks of article like newspaper columns. 
  • I'd like to figure out a way to distinguish users. Icons, .sigs, and big user names don't really do it. So let's think about this. Knowing who's saying something is a) important and b) may reduce the amount of shouting folks feel is required to be heard.

I've CC:ed my friend John into this conversation. He's thought a lot about how fora should and don't work.

John, chat me: xeno...@gmail.com when you can and I'll explain what we're doing here. Or, dive in. The short answer is that we're writing a forum. The long answer is more interesting, though.

-J

tedivm

unread,
Dec 31, 2009, 4:50:48 AM12/31/09
to mortar-de...@googlegroups.com, John Stavropoulos

The very first open source projects I ever worked on were forums, and this is something I've put a lot of thought into. I'm also a fan of Vanilla, in that its simple (something a lot of forums fail at). If you could give me more detail on how its lists things (conversation versus topic?) I would appreciate it.

I think the way current forums are categorized and sorted is, to be frank, broken. This is compounded by the fact that most people misuse forums, such as by trying to turn them into news boards. I think if we can find decent solutions to some of these problems we can take become a very popular forum. The fact that most forums are just new implementations of the same paradigm gives us a lot of room to break out.

Threaded versus Flat-

As you mentioned, doing the whole indented thing is doesn't look very good. I hate it. The other issue is they fracture conversation- by definition each reply creates its own thread. Flat conversations have the opposite problem, in that side conversations can sidetrack an entire thread.

One idea I had about this was adding an option to explicitly "branch" a reply. This would essentially be a way to combine flat and threaded conversations- by default everything is flat, but someone can "branch" instead of "reply" to create that new sub thread. This subthread could be its own topic, with context links at the top linking back to the original thread, and each post that gets branched could display links to its subthreads (using your "distance" idea perhaps?). From there we can apply some ajax to have the context links load the parent comments without a page refresh, or load the subthreads the same way. We should also allow branching to occur retroactively, making it possible for admins to prune threads without having to kill content.

There are a few benefits to this- 
* Conversations stay a group activity, rather than fracturing like with pure threads.
* People can go off topic without derailing the conversation, promoting more social interaction
* People can skip the sidetalk if they want
* Conversations can grow out in multiple directions

There will probably need to be a lot of experimenting with this to get the right workflow in place. We may want to have different levels of branches- some create brand new topics, complete with their own listing in the thread list, while others are only visible as subthreads of the post they branched from. 


Nested / Excessive Sub-Forums

Two very related problems that bug the hell out of me are forums that have either a billion boards listed on their front page or have multiple layers of nested sub folders. The problem has the same source- the current forum paradigm does not support larger communities at all. If you've got a forum getting a few thousand posts a day you have no choice to divide things up because people aren't interested in reading every single thing, but that division makes browsing the forum more difficult because you now have to check multiple places for topics you're interested in.

Again, we come down to a broken paradigm. I think this is a situation where we should consider tossing out the old model completely and build a solution based off of the core issues, not whats been done already. 

* Larger communities needs to segment to avoid overwhelming users with information that isn't relative to them
* Community division isn't just a matter of categorization, but of permissions and responsibilities
* Browsing should be easy, not a chore- one page indexes
* Usage should be intuitive- people who are visiting for the first time should be able to find what they need

Ultimately I think we should look to some of the newer online communities and aggregators- things like Reddit- for inspiration. They have a list of topics (subreddits) that people can subscribe to (with guests getting a default list), and all of the messages from all of those subreddits show up on a single listing. Now, I'm not saying we take the reddit system itself and use it, as it is not really ideal for what we're talking about, but we can definitely take inspiration from it. I think we should sort by last post, for instance, not by a voting system (since this is forum, not an aggregator), and there needs to be a better system for browsing the different categories. It may end up being that we have a page similar to current forum indexes as a way to browse the system, but I really think that structure is less than ideal for regular usage.

One additional interesting thing to the way reddit, and many other aggregators, work is that they have a single submission form where you simply enter the categories you think are appropriate. If we let people submit the same message to multiple categories we can easily filter it down to a single entry on the index page for people subscribed to both.

Social Networking

A lot of this is going to end up being handled by plugins. We're going to need to create an expanded user module at some point regardless, so it can be used by other modules besides this forum, but even still things like facebook connections and gravitar support are going to be plugins. We're going to have a really solid system for plugins though- we've already started work on Quarry/Foundry (our repository and package management software) and its coming along quite well. Ultimately admins will just go to a page in their admin screen, select a list of plugins (and get suggested plugins based off of their current install as options) and the system will download, install and maintain them going forward. I can't even describe the amount of research that had to go into this, but its gonna be awesome.

WYSIWYG

Done. Josh put a lot of effort into updating Mortar to the new CKEditor (what used to be the FCK Editor) so enabling it is pretty easy. I'm still working on integrating HTMLPurifier in before we start letting the general public post things (yeah, we're still pre 1.0.0 so some 'minor' things like XSS filtering aren't quite there . . .). CKEditor is pretty awesome though, and allows for plugins so we can interface other systems (like a gallery). Additionally I'd like to look into supporting other formats- through the wysiwyg- with markdown and maybe even bbcode (although, well, eww).

User Tracking

Icons and sigs (god I hate sigs with a passion that can barely be described) are not very good for tracking conversations. I have to say I do like gravatar quite a bit and would like to support it (as well as having native icon/avatar support). One way that I've seen recently is to use a color as the backdrop of a post, based on the users name. So lets say we have a pool of 20 colors- we'll have some formula that assigns a color based on name, so each user always gets the same. I'll admin that may be a somewhat weak idea, so any other ideas are welcome (not that they wouldn't be otherwise). Maybe some sort of watermark?

News

A lot of forums are also used to announce news to a community. This is another thing that I think is currently handled pretty badly- you don't want your forums to be your primary news vehicle because they suck at RSS aren't likely to be visited by people looking for news, just people looking to talk. At the same time it is important to display news through the forums so the community does see it, and we want them to be able to discuss it as well. My thought is that we can build a plugin to bridge our blog with our forum, allowing for unified comments (optional) and automatic cross posting. Basically if someone posts a blog entry to a linked blog it'll get displayed in the special news category of the forum without the need for the admin to copy/paste themselves (and with canonical headers for google).

Performance

Okay, this is a little off topic, but most forums are really slow. Ridiculously slow. They require multiple database queries to retrieve the same information over and over again. Our caching system, the minification systems, the http caching- its all going to make us much snappier than existing software, and I think its going to be picked up on by people.


So yeah, those are my thoughts. We really should step back from the current idea of forums, look at the core issues and goals that people use forum software for, and start from there rather than holding ourselves to a dying system due to tradition. I'm really glad you see a lot of the same deficiencies with forum software that I do, and I'm hoping your eye for design will help us solve these problems in truly innovative ways. Lets keep this discussion going.


Robert

PS-

Joshua, you should also take a look at the dashboard specifications we put up for the admin section (http://code.google.com/p/mortar/wiki/specDashboard). Josh is planning on tackling sidebars/menus and then that, and I'm sure he could use your help on figuring our some of the aesthetics. You should also take a look at how we've extended Twig for use as a template engine- our theme engine is pretty exciting now.

John- its exciting to have you looking at our project. If you have any questions just let me know. You can join the mailing list at http://groups.google.com/group/mortar-development and the project site is at http://code.google.com/p/mortar/








--

You received this message because you are subscribed to the Google Groups "Mortar Development" group.
To post to this group, send email to mortar-de...@googlegroups.com.
To unsubscribe from this group, send email to mortar-developm...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mortar-development?hl=en.

Joshua Hall-Bachner

unread,
Dec 31, 2009, 1:12:48 PM12/31/09
to mortar-de...@googlegroups.com, John Stavropoulos
Hi everyone! I've been actually working on the initial framework for the forum module (thus far just laying the very basic groundwork for the traditional paradigm) so I thought I'd chime in with my own thoughts.

I think, ultimately, the traditional forum structure can work very well, and does indeed function very well in certain specific instances where people have consciously designed their forum structures to encourage the behavior they'd like to see, but it's not very fault-tolerant. The naive implementation is to install something like phpBB or vBulletin, create a semi-arbitrary forum taxonomy, and then cross your fingers and hope people use it the way you want (which, by and large, they're not going to.) This sucks and I agree that we can do better.

(That said, I think there are a lot of workflow tools present in the traditional forum structure that hippie types like to throw out without consideration, and I think it's worth looking at those in detail.)

I think, in general, there are three interrelated problems that combine to make the traditional forum structure problematic:
  • An impoverished set of options for packaging and displaying content (such that visitors are forced to follow a strict workflow defined by the forum administrators' chosen taxonomy)
  • An almost nonexistent supply of information about content before you commit to reading it (such that people are constantly making decisions based on often-misleading thread titles -- and no other information -- when they decide whether to wade into something)
  • A lack of tools for the user to specify their own preferences

Broadly speaking, forums that make things work despite these handicaps take one of two strategies, in my experience: either they keep taxonomy to a minimum, and rely on users to self-filter for the stuff they care about vs. the stuff they don't, or they implement a taxonomy with very clear separation of purpose -- something where there's very rarely a question of whether something is "on-topic" because each subforum has such a distinct purpose that it's effectively like its own community. The former case relies on the skill of the users to overcome the structural limits while the latter relies on the skill of the administrators. I don't want to discourage either of these strategies, just open things up more.

In terms of the first option, this is where forum division really causes people problems (and why the open-model forums with like no taxonomy can be very successful). There are lots of forums I've frequented in the past where I've had to internalize an irritating process in order to get at the content I'm interested in, because there's maybe four or five subforums across which the relevant threads are going to be split and I have to manually click over to each one, after maybe opening all my subscribed threads first (which then I have to make sure I don't open twice accidentally...) It's a huge pain given that I pretty much always want to see the exact same stuff every time which is a subset of everything the forum has to offer.

The solution I'd propose to this would be to just focus on a single "front" view. You don't go to individual forums; you bring up a view that shows you all your subscribed threads on top, and then anything you haven't subscribed to but which is recommended for one of various reasons, and then stuff from the taxons you're interested in. If you want to see something different, you're not so much navigating elsewhere as you are filtering the forum differently. Vanilla does something kind of like this except their version is shitty. And that leads me to the problem that Vanilla shows us needs to be solved here -- because you're never operating in a context and there are so few visual clues about what you're doing in Vanilla it's dramatically more prone to "mistell" errors than any other forum software I've ever used -- people posting comments publically that were intended as whispers, failing to follow rules due to not realizing what category a post was in, etc.

Anyway, with this kind of structure it should be pretty easy to move from exclusive to overlapping taxonomies, say (letting people "crosspost" to multiple "forums" easily), or have something that shows up on a blog entry as a comment stream but is also viewable as a "thread" in the forum itself.

On the second issue, I was just thinking how stupid the default info you get from vBulletin is -- does anyone ever actually care about the view count of a thread? Here's some stuff that's actually likely to be relevant to me when I'm scanning a list of discussions: who's most prominently participating, what keywords are prominently featured, whether I've posted in (or been mentioned in, or had recommended to me by someone) the thread, or how "fresh" the thread is (I hate that there's no way to distinguish necroed threads from ongoing discussions basically anywhere).

The third issue ties back into the first. If I can just check boxes and determine which taxons show up on my front page, I can see the stuff I want to see easily. If you add the ability to add individual posters and keywords to both "recommend to me" and "hide from me" lists, I can create a page that very closely resembles the list of threads I would choose to read myself anyway with very little effort on my part, and still easily go and read whatever else I want if the urge strikes me.

I guess I don't care as much about the in-thread management stuff -- I've never actually found this a significant problem -- but I don't see any reason not to address it with decent tools anyway. If people could easily create 'branch' threads, choose whether they show upfront or exist only as subthreads, that'd already "fix" this problem to a fairly significant degree -- and also probably enable some new uses (people branching thread discussions to improve workflow on collaborative projects, various wacky RPbF systems, etc.) If you let people set custom permissions on these you could even use it as a drastically superior alternative to Vanilla's whispers.

I think it's also worth looking a little at user differentiation but ultimately I think we're pretty close to the optimum solution on this one already. We ultimately only have two "senses" we can appeal to on this purpose -- image sight and reading -- and I'm not sure that you can really improve either far past the icon/username system of "a unique identifier, selected by the poster, which is repeated whenever they talk" here. The color idea is interesting but I'm not sure it scales well into different types of conversations -- in a forum thread that's mostly occupied by three or four frequent contributors it could be useful to tag each one with an extra color-based signifier to make it clearer when each one is posting but that'll be basically useless in many blog comment strings where you're looking at a large number of posters contributing only once or twice. 

I would definitely want to define the edge of our mandate here short of any sort of social engineering regarding how people "should" use forums or trying to deal with forum behavior or whatnot. Though I feel extremely wary of shipping with anything resembling a "rep" system, or even necessarily a rating system for threads.

And I do think there are certain features that it's worth jettisoning right upfront to make a statement. Signatures and "post counts" strike me as good options.

--
Joshua Hall-Bachner
charl...@gmail.com

tedivm

unread,
Dec 31, 2009, 6:43:29 PM12/31/09
to mortar-de...@googlegroups.com, John Stavropoulos
John-

I'm glad your interested. 

We're basically looking at two different things here, Mortar and the forum software built off of it, and since you're kind of jumping into the middle of the forum discussion I'll try to fill in some of the Mortar conversation. I know a big part of it is that we have thus far been bad at publicity, but that is something we're actively working on.

Stake/Responsibilities

We're still a small project, so there aren't any real solid boundaries in development- we all work on everything, so to speak. That being said there are realms of responsibility- I (Robert, not Ted btw) founded the project and tend to run the internals and system stuff, while Josh tends to work on the interface code (branching the system out to a display), while Joshua comes up with designs and Wray works on finding bugs.

Mortar

Mortar is, for lack of a better word, a Web Application Kernel. The idea is that it handles the common tasks found in web applications- admin interface, theming/templating, url routing, plugins, caching, and so on- as well as a working base system. Applications- forums, blogs, wikis, shopping carts- can then be built on top of this 'kernel', allowing the application to skip implementing all of this again and to interface with other modules. 

For example, if someone has Mortar installed with the CMS module (Litho), they can then go and install Chalk (our blog). When Chalk is installed it fits right in with everything else, so there's no need do manage new users, design or get a new theme, or anything like that. Later on you can update the system by installing Graffiti, which will let you add tags to any model in the system (so you can tag cms pages from Litho or blog posts from Chalk). Graffiti isn't aware of Litho or Chalk specifically, but by integrating into Mortar it can modify the behavior of both of them.

There is a lot more to it than just that, but that should give you the basic idea behind Mortar itself. You're also right that a positive experience depends on the type of user we're talking about, so let me try breaking it down by how this helps each user type-

* Designers can build generic designs which will work across multiple applications, while still being able to break out and do specific stuff (easily) when needed. Josh can go into more detail about this.
* Developers get a lot of advanced features without having to reimplement them and other tools to make development easier.
* Admins get a unified interface for their site as well as tools to manage the modules installed on their system.
* Users get more consistency between parts of the site- this is what I meant in the quote you pulled out.

There are other features beyond these as well, but those are the main goals. With Mortar we're focusing on the tools that make make development, management and design easier while leaving the majority of the functionality to modules themselves. Our goals are are to make life easier for the people developing those modules and designing themes.

Location System

Our model system is a bit more complex than most. Mortar basically emulates a filesystem, so when you add a Blog module what you're really doing is registering a new model type (Blog) which can be installed to any location, as many times, as the admin wants. Locations can get nested- so a Blog can have comments just by nesting them, and we can add subforums just by allowing forums to be nested. User and Group ownerships, as well as permissions, are handled at the location level allowing us to customize permissions easily based off of a number of options. 

Modules

Mortar wouldn't be much without modules, and we're putting together a core group of them to start. We have a basic CMS, Blog and Wiki as starting points, and I'm currently working on our repository/package manage pair (Quarry/Foundry) which will be used to keep all modules up to date and make recommendations for plugins and stuff to install. We're starting our publicity push- getting the website and doing a house cleaning iteration- in January, and are hoping to get people developing modules on their own. We've also had some corporate sponsored modules already. Malwarebytes sponsored a helpdesk, which we're actually talking about taking to the next phase, as well as some features in the core itself. 

Themes

You mentioned default themes, and this is something I'd like to see more off. We're planning on linking themes in with the repository so people can have multiple options right from the start. We've also talked about "standalone" themes for each module, like having a special theme for the forum and another one for the blog. Josh has been working on the theme system so he can talk about this more.

Forum

So, at this point we do have the start of a basic forum, which is also part of our commenting system for blogs. I want the forum to be able to handle larger communities better than current ones do with a streamlined way of following conversation.


I'd also suggest you join the mailing list- some of the things you brought up might be better answered by Josh, for instance. Its just a google groups list, so you can easily jump off again later if you want.


Robert











On Dec 31, 2009, at 11:52 AM , John Stavropoulos wrote:

Nice to meet you Ted!

I've reviewed the project site and I have a few questions. A quick skype call in the next few weeks would be great.

Specifically I would love to dig deeper into the project's goals and paint a picture of who the forum app using Mortar's framework is for.

When we say, "users should have a positive and consistent experience throughout all aspects of a website", it's difficult to define positive without knowing who these users are and their intentions.

This might be because it's up to the developers and designers to customize or develop Mortar's apps for specific users. The issue of who the users are might more pertain to Mortar's default themes.

I would also like to know what your goals for Mortar are and what's everyone's stake and responsibilities.

One of my current projects is to manage the redesign of nerdnyc.com's website in the next 3-4 months. Starting with the forum. I'm the president of Nerdnyc, a nonprofit dedicated to helping people make friends and play games in NYC. We're a 1000+ users strong (after spammers), with a hardcore base of around 300-400 dedicated frequent users.

I've also worked as a creative director, senior marketer, and digital strategist for clients such as David Bowie, Electronic Arts, Museum of Modern Art, NASA, Rockstar Games, NJ Nets, NY Yankees, The History Channel, BMG, Iman, Moby, Sony, The Rolling Stones, Sarah Mclachlan, Avril Lavigne, and many more in the last 12 years.

Recently, one of my projects has been conducting live user tests of forum software as part of our research for next steps in redesigning nerdnyc.com. We tested phpbb3 and vanilla with 14 independent regular members of our community to find out what they use, don't use, don't understand, or are frustrated by. So this subject is of interest to me.

Thanks for including me in the discussion.

Have a happy New Year all!

Best,
John
Reply all
Reply to author
Forward
0 new messages