blog

archives

A Year in Discourse – Recap of 2015

Erlend Sogge Heggen January 28, 2016

Discourse is a large open source project buzzing with activity, so a lot of cool things happen over the course of a year. Let’s look back at 2015 and pick out some highlights.

Our Most Popular Topic of 2015

discourse-stateofjavascript

The most viewed topic of the year was The State of JavaScript on Android in 2015 is… poor. At 200+ replies and lots of first-time – and drive-by, but nothing wrong with that – posters, the single-threaded conversation stayed the course just fine, and the opening article was enriched many times over by insightful replies.

Our Top 3 Topics of 2015

top-topics-ui

According to our magical Top algorithm (well, it’s magical to me, but the source code is openly available), the top 3 topics of the year were:

1. A beautiful Material Design

@rewphus, one of our favourite design hackers, made the TOPest post of them all this year when he released his Material Design for Discourse.

material-mashup

2. THE DARKNESS

Mid-2015 the developers decided it was time to put dark themes on equal ground with light ones. Memes erupted and the war of dark vs light raged on for days.

darkness-settings

In the end, the lights did come back on as planned. As Jeff said:

Oh god when will the pain ennnnnnd.. I decree darkness is over 5pm pacific time Friday 8/21. So we’ll fix what we can until then.

But with the feedback gathered from the community, the darkness will readily embrace those who seek it.

3. A wild chatbox plugin appeared

“Shoutbox”, “chat widget”, “public stream”… Whatever the kids are calling it these days, it’s a frequently requested feature among Discourse users, so it was an exciting time for all when @gdpelican revealed his WIP Babble chat plugin.

Early demo of Babble

This is the most advanced community-supported plugin around today, and has also resulted in various improvements to Discourse core. We’re thinking hard about ways we can fold real time chat into Discourse version 1.7 and beyond.

Shipping releases like clockwork

Except for putting a bow on it at the very end I have very little to do with the Discourse stable releases, so I’m quite unbiased in my praise for the Discourse team’s commitment to a timely and regular release cycle.

Discourse shipped 3 stable releases this year, with about 30 flagship features between them:

Discourse is moving forward at an incredible pace. Let’s have a quick look at some changelog back-of-the-napkin math.

2015 Changelog Stats

  • 395 enhancements made Discourse even better!
  • 1265 bugs got squashed (hey now, you can’t make a *really* good omelette without breaking a few thousand eggs)
  • 25 import scripts will let you migrate to Discourse from practically any discussion platform.

I could also tell you how many UX tweaks we’ve gone through (204), but boasting such a number makes it sound like we’ve added a bunch of stuff, when the truth is we’ve been slimming things down.

Here’s Discourse in late 2014:

discourse-2014

Here we are at the end of 2015

discourse-2015

  • Star bookmarks: Gone!
  • Tiger stripes? Adiós!
  • Notifications button? Keep lookin’

All of these UI simplifications are based on community suggestions, or customer CSS customizations that we liked so much that we felt they belonged in the core. We’ve tried to strengthen our commitment to simplicity as we go.

Discourse is becoming leaner and meaner more conducive to civilized discussion with every passing year. We also got a bit rounder around the edges.

Contributors

For now, I’m taking the easy way out. Behold!

discourse-github-contributors-2015

Including the Discourse core team, I count 34 unique contributors for the year of 2015. That doesn’t include the many other repositories we maintain, though. We can also boast:

Sweet, glorious praise

2015 also marked the initiation of our praise category. Since its opening in June, we’ve been gratefully receiving a new pat on the back practically every week.

This one’s my favorite so far:

First off, I was designated to find an application for internal work that allowed good fluid search features with ease of use and the capability to store documentation for training purposes. I went through something like 14 different applications and it was really a mixed bag of rocks that just didn’t quite mesh up to what we were looking for. Then a friend of mine pointed me in the direction of Discourse and to be honest I was a bit hesitant. It was a forums format, but not. It was different and that’s hard to sell to your boss. Ultimately I scrapped all other instances and soon found myself knee deep in the configuration of Discourse and I never once looked back. It fit everything we needed perfectly.

Secondly, when I had my first issue I didn’t know where to go, but coming here it was super simple to instanly find a fix and if I didn’t find it I could post my issue looking for help and both @codinghorror and @sam have been there within hours of my post helping out with quality info or a way to fix it.

So my hats are off to you two gentleman for somehow being able to keep up with the influx of bugs and continuously updating your superb software platform. Your dedication to your users is by far the best experience I have ever had.

Again, thank you for your superb work, you guys are the best in the business as far as I am concerned.

Thank you for choosing Discourse! If you haven’t tried Discourse, now is a great time to try our easy 30 minute install, or take advantage of our free hosting trial.

Here’s to a great 2015, and an even greater 2016. Take a peek at some of the things coming to Discourse with 1.5 and 1.6 in our releases category.

Got some ideas for other other interesting (and not-on-the-back-of-a-napkin) stats? Tell me all about it in the comments.

Notable Replies

  1. p.s. I would have liked to include some proper GitHub statistics e.g: "unique contributors to Discourse (+ related projects) from Jan 1 2015 to Dec 31 2015" and so forth, but I can't work out how to get this from the GitHub API.

    If someone would like to lend a hand with this, let me know and I'll be sure make good use of it, starting with our upcoming v1.5 release!

  2. I think we should consider doing this with plain ol' git rather than github.

    The script that parses the logs to create release notes might be a good place to start. There might also be prior art out there.

  3. Had a little play with BigQuery, first time I have so you might want to check for errors:

    This is just for the github.com/discourse/discourse project.

    SELECT
    count(*) as count,
    type as type,
    STRFTIME_UTC_USEC(TIMESTAMP_TO_USEC(created_at), "%Y-%m-%d") as date
    FROM (
      TABLE_DATE_RANGE([githubarchive:day.events_], 
        TIMESTAMP('2015-01-01'), 
        TIMESTAMP('2015-12-31')
      )) 
    WHERE repo.name = "discourse/discourse"
    AND NOT type contains "Comment"
    GROUP BY date, type
    ORDER BY date, type

    I can provide a Google Sheet or CSV perhaps if needed.
    Google Sheet here

Continue the discussion meta.discourse.org

Participants