Discourse 1.4 Released!

Jeff Atwood September 22, 2015

It looks like we’re on a solid cadence to deliver a new version of Discourse about every 4 months:

And you know what that means … Discourse 1.4 ships today!

The focus of this release was UI improvements and enhancements, as requested by our customers and active Discourse communities.

Better Dark Theme Support

Dark themes worked in earlier versions of Discourse – if you were willing to roll your sleeves up and augment the color selections with some hand rolled CSS. But in 1.4 we switched Meta over to a dark color theme for a week and made sure it worked flawlessly throughout Discourse.

Improved, Simpler UI

We’re always looking for ways to further simplify the Discourse UI, so in this release, we’ve done the following:

  • Moved like count inline with the reply buttons, so topics with lots of likes are not so vertically expanded.
  • Unified the notifications and user drop down at upper right, so there’s one less glyph at the upper right to make you think.
  • Overhauled and enhanced the hamburger menu and notifications
  • Introduced subtler styling for staff actions in topics, so the conversations are not so visually interrupted when a staff member does something to the topic.
  • Added subtle interstitial posts to better indicate big gaps in ongoing conversations (“two weeks later..”)

Full Page Search

We’ve further refined search in 1.4, going beyond the just-in-time search as you type, and adding a whole new “full page” search mode that lets you narrow your searches in new ways and see more results, with more detail. You can also link directly to a Discourse search now:

Image upload improvements

We now provide more editor feedback during image uploads (which as always, you can add via paste, drag and drop, or the upload button) and offer better optimized images for reduced bandwidth and storage.

On top of that, we now serve default Discourse avatars via, a completely free, CDN based hosting service for our default “letter” avatars that further reduces CPU load and disk space on your Discourse server, while adding the benefits of global caching.

Easier Category Ordering

There’s now a proper UI for re-ordering your categories, rather than the old method of assigning each one a number.

Mobile Layout Simplified

We thought our mobile layout was a bit busier than it should be, so we simplified it. Note that “new” is just a dot on mobile, and we display either the unread reply count, or the total reply count rather than both.

Anonymous User Call to Signup

We welcomed back Kane York aka riking for a summer internship this year and he did amazing work as usual. One of the features he suggested himself, and then built, is this nifty call to action for anonymous users – after reading the site for 5 minutes and entering at least 3 topics, anonymous users will be presented with a little banner at the bottom of topics inviting them to sign up and create an account! This is exactly the kind of just-in-time action we love to build in Discourse.

Topic Whispers

We now offer a “whisper” feature for posting inline topic replies that are only visible to staff. Enable the feature in your site settings, then use the gear icon in the post editor to indicate when you want to whisper to the other staff members in the topic.

Improved Embedding

We’ve had the ability to embed Discourse (in a read only fashion) in static HTML pages for a while now, but in 1.4 our embedding support is greatly improved – you can style the embedded section via Admin, Customize and you can embed per category, if you want several blogs or sites to feed into the same Discourse instance.

Better Performance

We upgraded to Ember 1.12 for improved performance, and spent some time optimizing the user page as well, which was a little pokier than we would have liked. (We also noticed that Discourse is 10% faster under Mobile Safari in iOS 9 in our benchmarks, and going from Android Chrome 42 to 45 will improve performance 30%, so we’ll take credit for those JavaScript performance enhancements, too.)

And so much more

These are just the major highlights in 1.4 — there are literally hundreds of other tiny improvements, refinements, and bugfixes in 1.4 that we aren’t covering here, but are in the full release notes.

Easy One Click Upgrade

If you want some of this new awesome 1.4 stuff, and I know you do, upgrade your Discourse instance today via our super easy one click admin updater linked right from your dashboard:

Thank You

As usual, we’d like to first thank our customers for your support, and the overall Discourse community for their many contributions toward this release — whether it was in pull requests, feedback on meta.discourse, or our personal favorite, feedback based on user activity in your own Discourse instance. In particular, we’d like to highlight significant pull request contributions in this release from tgxworld, Simon Cossar, gwwar, and gerhard.

Yet again, avid meta.discourse user erlendsh created the super cool feature demo videos and screenshots that you see above.

For insight into what’s coming up in future releases of Discourse, keep an eye on the releases category at meta discourse. If you don’t have Discourse, install it yourself in under 30 minutes, or get a free 14 day hosting trial!

12 Replies

Improved Polls in Discourse

Jeff Atwood August 21, 2015

Polls just got a lot better as of our most recent Discourse 1.3 release! To add a poll to any post, just follow these easy examples:

Single Choice Poll

- Apples
- Oranges
- Pears

Multiple Choice Poll

[poll type=multiple]
- Apples
- Oranges
- Pears

Multiple Choice Limited Option Poll

[poll type=multiple min=1 max=2]
- Apples
- Oranges
- Pears

Number Rating Poll

[poll type=number min=1 max=4]

Named Polls

To include several polls in the same post, simply give each poll a name:

[poll name=fruits]
- Apples :apple:
- Oranges :tangerine:
- Pears :pear:

The post owner (or a staff member) can close a poll any time. After the poll is closed (or if you press the Show Results button) you can view the current poll results in graph form:

There are a few other features we want to get to in the future:

  • Show who voted in a poll
  • Auto-close polls after a certain time (or number of votes)
  • Secret polls where results aren’t visible until the poll closes

Try it out in our sandbox and see what you think!

1 Reply

Choice of Games and Discourse

Jeff Atwood August 7, 2015

We don’t consider Discourse successful unless the communities using Discourse are thriving and growing. And no community we host has thrived quite like Choice of Games.

Their Discourse has absolutely exploded over the last year, to the point that they are now the 22nd largest Discourse instance that we know of! We recently interviewed Jason Hill and Dan Fabulich of Choice of Games to discuss how they use Discourse to power their unique community of text-based gamers and authors.

Dan, tell us a little bit about Choice of Games.

Choice of Games is dedicated to producing high-quality, text-based, multiple-choice games (“interactive novels”). They’re like choose-a-path gamebooks, but longer, deeper, and richer.

We produce games in house, and we have also developed a simple scripting language for writing text-based games, ChoiceScript, which we make available to others for use in their projects. We host games produced by other designers using ChoiceScript on our website. We also produce mobile versions of our games that can be played on iPhones, on Android phones, and other mobile devices.

Why text-based games?

Dan: Your favorite novel was probably written by one person, but games are usually a collaboration between a lot of people: game designers, coders, music/sound engineers, illustrators, animators, QA, etc. There are a few superheroes who can do it all, but that’s exceedingly rare. We developed ChoiceScript to make it possible (indeed to make it easy) for one person to develop a full-length game, to write an interactive novel and make good money selling it online.

Jason: This is a short question with a very long and multi-pronged answer. One version of an answer is that text-based computer games have a long history (cf Zork). However, when the graphics turn happened in the late 80s and early 90s, malinvestment in IF resulted in a crash; since then, text-based games have been primarily a hobbyist venture. However, with the advent of mobile devices, we saw an opportunity to reinvent commercial text games for a modern audience.

Jason: Moreover, narrative is timeless. Graphics may become dated, but a good story never gets old.

How many games do you have out there?

Jason: 35 as of July 17th. Our 36th will be releasing 8/6 or thereabouts. But that’s our professional label. There’s also the “amateur” label, Hosted Games, that has another 30-something titles.

How many people work there?

Jason: We just hired a new Editorial Assistant, so that makes the team five people. But our CTO Dan still has a day job, because we can’t quite afford him yet.

Your games are a bit different from the norm. Would you say your users are different as well? If so, how?

Jason: Choice of Games has three core values: feminism, egalitarianism, and sex-positivity. Those values mean that we are considered “good on representation” in a variety of contexts, and that means that we tend to have a progressive, queer- and female-friendly community. We also make some of the few computer games to be broadly accessible to the blind and visually impaired, so we have a following in those communities as well. But, really, we’re about making good stories, and we hope that anyone who likes good stories will find something to like in our games.

Jason, Your forum community has existed since 2011 (correct?), and in 2014 you decided to switch to Discourse. What was the transition process like, technically and culturally? I noticed you wisely consulted with your community before making the switch.

2011 sounds right, though I can’t say for sure. Basically, we would post about stuff on our blog, and people would comment there, and eventually they just started demanding forums. We were resistant at first, because we had no money and not time to moderate them. We found Vanilla forums, which was free, and managed to get that going, and I became the defacto Administrator for them.

Unfortunately, free comes with a price. And while Vanilla does a relatively good job about posting updates to their forum software, you have to be proactive about installing them. We weren’t. So in 2014, we had our forums hacked, and from the forums, our main website. We managed to resolve that problem quickly, but we didn’t want to feel vulnerable and continue being responsible for maintaining the forums’ security; and the Discourse hosting solution put up a wall between the forums and the website which also helps. Moreover, between 2011 and 2014, our revenue increased markedly, and we were finally in a place where we could afford a monthly fee.

We solicited suggestions from our users about which forum software they liked, and we seriously investigated three options. Eventually, however, our CTO was persuaded by something which I don’t remember.

Dan, you’re the CTO. can you elaborate on that?

We seriously investigated Vanilla’s hosted option, IP.Board, and Discourse. For Vanilla, we had a hard time dealing with spam using Vanilla’s tools, and we felt like paying for hosted Vanilla would just give us more of the same.

We very nearly went with IP.Board, especially when some of our visually impaired users vouched for its accessibility. I was motivated to go with Discourse for several reasons:

  1. Discourse has great moderation tools, and especially great ways for the community to help out with moderation. Nobody does Flagging better than Discourse.

  2. Discourse is open source. Paying for Discourse means supporting free Discourse all over the web.
  3. Jeff Atwood. I’d read Jeff’s Coding Horror blog for years and followed the development of Stack Overflow (and the rest of the Stack Exchange sites) with great interest. Over the years, Jeff has proven that he knows how to build a community.
  4. I knew we could figure out any accessibility issues. (There turned out to be a few suggestions, but no major accessibility roadblocks.)

I think we made the right decision. Our Vanilla forums had around 2,000 monthly active users in 2014 when we switched off of Vanilla, and we’re at 16,000 MAU now, only a year later.

The moderation tools are an important part of that. On Vanilla, spam got so bad that we had to lock down registration, asking people to request registration and write a sentence about why they wanted access, which we’d then manually approve. Even that was tough, because we’d have to sift through hundreds of spam bots trying to register. Discourse is so good that we don’t have to lock down registrations. (I also especially appreciate the sock puppet detector.)

You have a very active Off-topic category for general banter among community members, which is always a delight to see. Was the establishment of this sub-community a conscious effort or did it “just sort of happen”?

Jason: So, “Off-Topic” is something of a misnomer. More accurately, it would be described as a “Tangential Topic” category. And by that I mean, our games sometimes bring up social, political, or emotional issues that are worth discussing, but are a digression from the specifics of a game. So, rather than have a conversation about gay marriage in a thread about a superhero game, we have the “Off-Topic” category to explore those issues.

Speaking of active categories, Works in Progress category is particularly vibrant. There are topics here with over 10k posts! Jason, what’s going on in this category, and how does Discourse fare with this rather unique style of discussion?

As I mentioned, Choice of Games has a sibling company, Hosted Games. Hosted Games has a different set of values (things like free speech and democratization and access). Hosted Games is about allowing almost anyone to publish a game as long as it’s not patently offensive and it’s written in ChoiceScript.

However, in the sense of “Hosted,” we at COG/HG provide no editorial support on the Hosted Games titles; they’re sent in when they’re complete and we publish them. That doesn’t mean, however, that the authors of HG titles don’t want feedback. So several authors, particularly authors who have written popular first-forays, use the forums as a testing resource. They may release a WIP chapter-by-chapter, as it develops, and solicit input from the forum members on any number of things.

Guns of Infinity, the sequel to the 2013 Sabres of Infinity, is an example of this. Conversely, Guinevere is a retelling of the Arthurian legend that is many tens of thousands of words long, but we’ve never spoken with the author. However, she’s very active on the forums and regularly incorporates the feedback of readers.

Dan, do you feel interactive novels are particularly suited to discussion forums?

Our WIP category is an amazing resource. It is very hard to find the motivation to write a novel, and while writing an interactive novel can be easier that developing other kinds of games, it still requires writing tens of thousands if not hundreds of thousands of words.

But interactive novels are uniquely suited to chapter-by-chapter discussion, and our regulars love giving feedback on WIP games (and encouragement to finish, which is solid gold for motivation). WIP feedback quickly veers into philosophical game design, and from there into all sorts of Off-Topic stuff. (That’s how the WIP category fuels the Off-Topic category.)

Discourse is especially great for this, because it’s really easy for anyone (not just moderators) to create a new linked thread when a WIP discussion has wandered away from the game under discussion.

Discourse tries to provide a simple, readable set of guidelines for civilized discussion. How have those worked out for your community, Dan?

We’ve been well served by Discourse’s built in guidance, which gives users and moderators basic guidelines to avoid nasty interpersonal flame wars. Flame wars can still happen, of course, but our rules make it clear that we have the moral authority and responsibility to stop them.

We made only a couple of very subtle changes to the default guidelines: we needed to add a “Respect our authors” section to make it clear that badgering authors was unacceptable, and we elaborated on the “Always Be Civil” section, adopting some ideas taken from the Recurse Center (formerly known as “Hacker School”).

We added four bullets that I recommend everyone add to their forum guidelines:

  • Don’t disrespect any group of people. Racism, sexism, homophobia, transphobia and other kinds of bias make others feel uncomfortable.
  • Avoid subtle -isms. These are small things that make others feel uncomfortable, things that we all sometimes do by mistake. For example, saying “It’s so easy my grandmother could do it” is a subtle -ism.
  • Apologize. If you make other people uncomfortable on our forums, especially by mistake, apologize, or say nothing.
  • Don’t argue about civility on public channels. Don’t defend yourself, don’t defend others, and don’t pile on to someone who made a mistake. If you see a problem, flag it; don’t reply.

That last bullet is especially important, because flame wars about civility are often the most emotional and the most toxic. (“No, YOU broke the civility rules, you knucklehead!”)

It seems some of the Titles found in “Works in Progress” even make it as far as being officially published by Choice of Games. What’s this process like?

Jason: What you’ve just said is actually very rare. We’re in the midst of having a forum member rewrite a WIP that he submitted to us for publication as a Hosted Game so that we can release it as a Choice of Game title, but that’s the first instance. But, yes, the purpose of the WIP section is to develop Hosted Games titles.

Dan: I hope we can fix that in the next year, doing more to help our HG authors develop material for our main “Choice of Games” label. It’s more common for individual authors to publish a successful HG and then publish their next game under the CoG label with direct editorial support.

Have you developed a certain “style” for discussing feature requests with users? (which can be a delicate matter)

Jason: With regard to CS, it’s all about how much time our CTO has. And, as I previously mentioned, he still has a day job, so that’s not much.

Dan: We normally do that through a private beta process.

In what way(s) does your community impact your game’s development?

Jason: What’s interesting is that our community does not equal our sales data. Therefore, we solicit the community’s input, but then we have to compare that with the sales data, and make our own best judgments about all sorts of things. So, their input is invited and appreciated (about new games, game design, feature request, etc), but not absolute.

Dan: Often we publish a game that our forum users dislike, but which sells very well, or a game that our forum loves but barely makes its money back. We also get a ton of value out of beta testing upcoming games with our forum regulars. Often beta feedback will show you that you need to add a new ending (which is easy in a text-based game) or allow more options than the author had considered.

Jason, you’re the primary forum administrator. After a year and a half with Discourse, which of its features do you enjoy the most?

  1. The flagging system and spam control. That’s key.
  2. The “like” system. We prefer to keep things (somewhat) tidy, and have explicit rules about posting without adding content. The like button helps with this.
  3. Pasting pre-formatted text. It allows the community to help itself with ChoiceScript coding difficulties.
  4. Spoilers tag.
  5. The ability to move posts to where they belong.

What’s your most wanted feature/change for Discourse?

Jason: Add a spoiler button to the formatting bar. Also, consider making them so they can cover more than one paragraph, so the poster doesn’t have to tag each paragraph?

Dan: There are still a number of users who would like to see a fixed-pagination mode option (as opposed to infinite scrolling).

Any growing trends you’re excited about?

Jason: The way in which the community is organizing itself. ChoiceScript is free to use as long as you don’t use it to generate revenue. You don’t have to pay us any money; you just download it from Github and start coding. That’s the source of a lot of enthusiasm on our board: people can just start making games. And they compare games, and share games, and comment on them. In particular, the community just finished their third annual CSComp, where participants had a month to write a game on a organizer-determined theme. All the submitted games are posted and free to play by anyone who comes along. That was all organized by the community leaders; Choice of Games and Hosted Games was totally uninvolved in the organization and judging of the contest.

Thanks Jason and Dan for sharing your time with us. For more information, visit Choice of Games and check out the Choice of Games discussion community!

3 Replies