Forum Software - What are your thoughts?

Having worked for two different competitors in the Forum Software Market, and watching over the last few months at the ranting and raving about the incompetency of these companies and others (Not by me, but by others - I can’t (for legal reasons) express my personal opinions regarding them) It’s led me to ask the question.

If you were to write your own, perfect Forum Software, what features would it have, and what would be “special” about it?

Personally, I’d like to see a Forum System that had an abstracted API at it’s core, so addon features could be added nicely. I’d also like to see that it’d be a RESTful system (or at least work in a Resource Oriented Architectural Manner)

So, tell me your thoughts…

14 Responses to “Forum Software - What are your thoughts?”

  1. Stefano F. (tacone) Says:

    Not sure about what you mean for abstracted Api.
    As the main issue with forums is integrating them with your other existing websites I’d like to have good plugin architecture.
    So you could plug-in an alternative Users datastore, alternative users login etc.

    In my experience, the user’s authentication and storing (which db table, which fields, etc) is the main issue.

    Then follows last post local/remote retrieval, thread retrieval, thread posting etc, but that’s more easy usually.

  2. Michael "The perfect forum" Howell Says:

    The perfect web software (forums included):
    1) Should work in an SOA/ROA/RESTful manner and include built-in WSDL support.
    2) Should be written in C/C++ (FAST!!) and support dynamically loadable plug-ins using an abstracted core. (NOTE: C/C++ is the least important of the requirements) (NOTE2: I’d prefer C++)
    3) Should produce valid _and semantic_ HTML or XHTML (depending on the capability of the browser).
    4) Should support CSS style-sheets.
    5) Should not produce different pages for different browsers (except in the aforementioned HTML/XHTML switch, though they shouldn’t be very divergent).
    6) Should support OpenID user registration.

  3. Bugsbane Says:

    1. Ability (but requirement) to have Slashdot style community moderation. Trying to moderate a large forum without a whole stack of moderators is a pain!

    2. Ability to have the system send moderators “warnings” when particular users post or particular regex phrases occur in posts/PM’s.

    3. Unintrusive spambot protection.

  4. T. J. Brumfield Says:

    A modular API with plugins seems like a great way to go, but the problem with modular hooks is that they’re not good for performance. You get all these calls. What I’d like to see is a series of plugins/modules/addons that are more like patches. Have people write a bunch of mods, but instead of calling them with hooks, install them like a standard diff/patch, so in the end, you’re not killing performance. It would be nice to have a repository of modules/patches/addons, to keep track of which ones you’ve installed, which ones conflict with one another, and how to resolve those conflicts. When you keep track of which ones you have installed, you can uninstall them with ease.

    Also, look at something like phpbb which needs to run in all kinds of languages. That is great since the whole world can use it, but for almost all use-cases, the forum itself with operate with one language. Why have all the language hooks? I’d prefer to see a diff file that targets all the strings. People can translate that diff file, but the end product uses direct strings rather than look up the version.

    Do the same thing with themes/templates. Instead of dynamically creating the page more with the template, use a diff again. Each theme is a diff from vanilla, and you can revert the diff to go back to vanilla, and then install another theme.

    In the end, your page generation times will be less, and there will be fewer DB calls. Performance goes through the roof.

  5. T. J. Brumfield Says:

    I’d like to addon to previous comments. I know just enough PHP and SQL to get myself in trouble, but I’d love to develop a truly superb forum software package for personal use. I’m all for keeping it OSS and letting others benefit. I don’t have the skills to start anything from scratch and what I’m looking at doing is taking something like phpbb3, installing mods, integrating gallery2, integrating wordpress and then trying to streamline it for performance. As phpbb3 continues development, I’d try to patch in diffs from their latest branch.

    I want something very much feature rich in what it provides, while not dogging on performance. If you take a look at something like phpbbfm, not only is it gaudy (poor choice of modules they’ve added) you get horrid performance. They go nuts on SQL calls for useless features.

    Lastly, the other big thing is to make _good_ use of AJAX features. Why do all forums still use an ancient interface? Don’t add eye candy that offers no real improvement, but why not utilize stuff like lightbox for images, ajax pop-up search boxes, auto-complete, etc? PMs should also be ajax pop-ups as opposed to pop-up windows. You should be able to drag the interface of the forum around, close down a section, open another up, etc. Reduce page-loads and allow a customizable interface that users will enjoy.

  6. Big Dan Says:

    I’m no developer and couldn’t build my own forum script however I do run a couple of vBulletin based forums which seems to be the best out there currently, I can understand the reason why Ubuntu Forums runs on vB. My preference for forum software goes like this: vBulletin > MyBB > phpBB.

    Having worked alot with just about all forum package except for IPB the following things seem to be missing or poorly implemented.

    Templating System: In most forum packages everything is controlled by templates which a first look is a great idea, however once you customize the template, which nearly everyone does as who wants to run a board? version upgrades especially major upgrades bring all kinds of headaches and many templates that have to manually edited. I have no ideas on how to overcome this short coming but something should be done.

    Upgrades: If your software frequently releases updates, it should be able to auto update itself or at least download the package on it’s own and let the user actually run the upgrade. None of this download the package from one site, decompress it, and overwrite the server side files via http://FTP. It’s time consuming busy work.

    Add-ons: It would be nice if addons were easier to install again I’d be very happy if I never had to see another FTP client. :D

    Thanks for listening,
    Dan

  7. Henry Miller Says:

    I always want this more than anything else: For every thread, when I click on it, it needs to take me to the next message after the last one I read. Many of them know which threads I’ve read, but in long threads I have no clue what page to visit to start today where I left yesterday. Many of the last read threads are based on when I last visited the forum as a whole, and not the thread itself, which is annoying in itself.

    I’d like to see a NNTP interface to I can use a better client than a web browser as well. (This would take care of the other problems), but it appears that this is a much harder problem than I would think as I’ve never seen it.

  8. børge Says:

    I love how the Unclassified Newsboard forum software lets you get a msg trough Jabber/XMPP when there’s a new post in a thread you’re active in. I wish more forum software had support for that.

  9. Michael "ideas" Howell Says:

    IMO, the perfect forum software would:
    1) Be ROA/RESTful, and have built-in support for WSDL.
    2) Produce valid and semantic XHTML (or HTML if the browser doesn’t support XHTML).
    3) Support plug-ins on an abstracted core.
    4) Be written in C++ (FAST!) and support runtime loaded plug-ins.
    5) Support CSS style-sheets.
    6) Besides the HTML/XHTML switch, produce the same markup for all browsers.
    7) Support OpenID sign-in (preferably as a removable plug-in).
    8) Produce RDFa meta-data.

  10. Bogdan Bivolaru Says:

    That API based forum would be truly useful. None found so far

  11. Bert Van de Poel Says:

    A long time ago I did start to make my own forum with certain ideals and structures but I never finished it, the plan was to make a forum that was very simple, for users that didn’t know a lot about how forums and other webapps function, it would be almost not customisable (only with a css file) to make things even easier. It would have the basic function that all forums have but nothing extra, no plugins or whatever. I thought that people who don’t know a lot about webdesign could use it for an easy forum and also system admins and that kind of people for quick forums that don’t need a lot of administration.

  12. Mez Says:

    What I mean by an abstracted API is so that, for example, another application can automatically link into the system, so they can, for example, have all their session and user management stuff done by calling

    Session::LoadUser();

    or similar, meaning that the base core components are there for anyone to use.

    I’m thinking along the lines of a Framework style thing, however, most of the frameworks out there don’t go as far as that, (eZc being a noted exception) as far as I’m aware, and just put an abstraction on the bits that you’d use to put together something (form creation, input cleaning, etc etc) - whereas what I’m thinking of would go a step further, so that you can easily include all the functionality of the forums with a simple call, and have the backend use it, so you don’t have to do special code checks to see if a user is logged in, or if a user has a special permission. You just call

    User::is_admin();

    And that lets you know whether the user is an admin, displays a login form (from the main app) if there is one needed, etc etc.

    Michael, as much as C++ is great, it’s not the easiest thing to write a web-app in.

    Regarding automated update. While it’d be nice, it’s not particularly feasible.. :( Things being broken, etc etc.

    I think regarding automated updates, something along the lines of Bzr would work well for that, espescially if you have local modifications.

    Actually, come to think of it, bzr would be great for add-ons etc etc. You could just

    bzr merge http://location/to/some/cool/feature

    And then it’d set it all up for you…

  13. Jelmer Vernooij Says:

    A mailing list or NNTP gateway would be a killer feature.

  14. Milian Wolff Says:

    Most important things to me (and I’ve worked with phpBB 2+3, SMF and others):

    - easy integration with other Software, like $CMS, $SHOP, etc., single-sign-on would be sufficient, but shared user-databases etc. would be even better.
    - plugin based => OpenID support, Mollom/Akismet integration, etc. etc.
    - clean separation of templates from PHP code, Drupal is a good example here for a job well done.

Leave a Reply