The Road to Discourse 1.0

Discourse launched at version 0.8.0.0 which was my off the cuff estimate of how "done" we were with our first public release on February 5th, 2013 -- about eighty percent done, I thought, once you factor in the ninety-ninety rule:

The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.

As of this week we will be incrementing to Discourse version 0.9.8.0 with an eye on making it to version 1.0.0.0 sometime in the next few months. That's right, the mythical version one-point oh! I know nothing really gets good until version 3, but we believe this will be the first version of Discourse we can recommend to everyone, for almost any use, without hesitation.

We've worked hard to get this far. Some stats on the Discourse project to date:

Metric Quantity
Commits 5,857
- -
Versions 37
Contributors 258
Pull Requests ~1,450
Meta Topics 3,278
Meta Posts 25,491
Team Members 5

We've been a bit shy about producing manual change logs, because so many things are changing in Discourse so fast. And of course the actual history of commits is always visible on Discourse because this is a public, 100% open source project.

It's difficult to overstate just how far Discourse has come since launch last year. We thought about it a bit and came up with this (rather long!) list of new and notable things we've added or expanded on in Discourse over the last 11 months:

  • 3x performance improvement
  • Mobile layout
  • Reply-via-email support
  • Subcategory support
  • Improved digest emails
  • Improved user page
  • Improved single-column category page
  • Sortable topic list columns
  • Automatic large image handling/ thumbnailing for posts
  • File upload/attachment support
  • Top topics page as a "quick start guide" for new and long-absent users
  • Category level preferences (watch, mute, etc)
  • Slew of admin page dashboard stats
  • One-click remove spammer support (remembering prior email, IPs, URLs)
  • Functional private forums with user approval queues (see Ruby Rogues Parley)
  • Massively improved version history UI for edited posts
  • Optimized topic pages, UI, and browser load strategies that work well with topics that have 1k+ posts
  • Site settings grouped into categories for ease of discovery
  • Logging of admin actions and admin setting changes
  • Allowing custom HTML at the top/ bottom/header of every page
  • Vastly improved plugin support with much greater extensibility
  • Custom local avatars
  • New minimalist UI to make theming easier
  • WordPress plugin to provide Discourse comments and a forum for WordPress blogs
  • Embedding support to provide Discourse comments and a forum for statically generated blogs (see eviltrout.com for live example)
  • Several new just-in-time user behavior cues to improve discussion
  • Improved Markdown support (with full MDTest 1.1 compliance)
  • Easier installation with Docker
  • Enhanced oneboxing (URL pasting) support, delivered as a gem for sharing
  • Auto-closing topics
  • Secure categories, visible only to certain groups
  • Improved search that auto-scopes if you are on a user or category page
  • Live update of new and unread counts, as well as post datestamps
  • Run your own authentication via plugin hooks (oauth/openid or custom)
  • Improved flagging support and one-click flag handling
  • Per-user API keys as well as per-site
  • HTTPS support (currently testing on meta)
  • RSS Feeds*
  • ~ 20 localizations in various states*
  • Persona logins*
  • Keyboard shortcuts*
  • Ability to mention Groups as well as users*
  • Favicon notifications*

The items with an asterisk* were generously contributed by the community. As long as this list is, I'm sure we forgot to mention something the Discourse community helped us improve or add in 2013. Thank you.

In addition to hitting version 1.0 in the next few months, we have lots more great stuff in the pipeline for 2014, including news on our hosting story. Stay tuned, because we sure don't plan on slowing down any time soon.