blog

archives

Discourse 1.7 Released!

Jeff Atwood January 6, 2017

Today, after four months of work, we’re proud to release Discourse 1.7.

Official iOS and Android Apps

Thanks to Sam Saffron, we released an Official Android Discourse app and an official iOS Discourse app. These apps offer native push notifications and a way to aggregate all your Discourse sites in one place.

Discourse Mobile App for iOS and Android Discourse Mobile App for iOS and Android

Discourse Mobile App for iOS and Android Discourse Mobile App for iOS and Android

The apps are free to use for all, but do note that push notifications require special support from Apple and Google respectively, and are currently only available to sites hosted by us. As with all Discourse code, the app is 100% open source.

Improved Mobile Progress Expansion and Back Button

We’ve drastically improved the behavior of the Back button that appears on the timeline — both on desktop, and on mobile. You will see a back button pop up more reliably when you scroll up while reading a topic, so you never lose your place. And if you expand the mobile progress bar, you now have full access to the timeline, just like on desktop!

Revamped Categories Page

We noticed site owners struggled to decide what their home page should be: a static list of categories, or a dynamic list of topics. Both pages have their pros and cons, and you want to get it right, as the home page is the primary experience for most users.

We’ve added a new default which lets you have the best of both worlds — a set of relatively static categories for navigation on the left, and a list of the most recently updated topics on the right.

Discourse hybrid category and latest page

“Why not both?” indeed!

Setup Wizard

As much as we enjoy Discourse, we have to admit that our setup process wasn’t exactly.. fun. In this release we set out to change that.

When you set up a Discourse for the first time, you’ll now be greeted by the setup wizard, who helpfully walks you through all the steps to getting started with a brand new Discourse instance!

Discourse Setup Wizard Steps

Thanks to Robin for this major improvement in ease of setup. We have plans to make the wizard even better in future releases, but it’s already worlds better than our previous “I hope you enjoy reading this wall of Getting Started text” strategy.

Onebox Everywhere and Start Topic With a Link

In all versions of Discourse, pasting a link on a line by itself resulted in “oneboxing”, or a quick expansion of the link into a title, summary, and picture. But only for certain whitelisted websites. In Discourse 1.7, we’ve extended this support to all links. Any link that supports OpenGraph or oEmbed will now onebox!

We also made it easier to start a topic with a link, as it’s so common to want to have a conversation about an article you read online. Simply paste a link into the title field and we’ll populate the body and title for you. And the resulting topic will show a link source, ala Reddit.

Redesigned Email Summaries

Email summaries are critical to the health of any Discourse instance — we automatically email anyone who hasn’t been seen on the site for a week with a “greatest hits” of the most interesting community discussions, with an eye on enticing them back to participate.

Since we mail a lot of these out, they need to be great. With the help of Rewphus from the community and Neil from our team, we completely redesigned the summary to make it more visually interesting and show more relevant stats to each user, such as now many new notifications they have, or how many new likes they’ve gotten (if available).

Discourse weekly summary email

(Note that we only email people we haven’t seen once per week, for a maximum of year since we last saw them. Proper unsubscribe email headers are built in, plus a one-click link to unsubscribe.)

Advanced Search UI

We’ve improved basic search a few times, and we’ve added a number of advanced search terms, but they were hard to find and use. No longer! Thanks to community member cpradio, we now have a proper user interface for advanced search. Fill out exactly what you want to search for in a simple form — no complex commands required!

Enhanced Groups Pages

There’s been a lot of interest in more dynamic Groups pages, as well as continuing on our march toward making every @group first class citizens alongside every @user.

Guo Xiang Tan spent a few weeks improving our groups pages, adding descriptions and full names to groups, as well as letting people (if allowed by the group) to join and leave the group, or request membership to a closed group.

Email Forwarding Support

Another frequent request, for those sites that have incoming email configured, is to allow forwarding emails into Discourse. Thanks to the hard work of Régis, this is now possible!

forward emails into Discourse

(For this version, we only support forwarding a single email, but we plan to allow forwarding of entire email chains into Discourse in 1.8 and beyond.)

Public Security Program

To make sure Discourse is as safe and secure as possible, in 2017 we’ve added a public exploit bounty program at Hacker One. This is in addition to our existing security policy and the two formal security audits our customers contributed in 2016.

Although we didn’t uncover any critical vulnerabilities from our Hacker One program so far, we have benefited from several minor issues they uncovered. And we absolutely want to reward and publicly acknowledge anyone who privately discloses a security vulnerability that helps make Discourse safer for everyone. This is important to us, and we feel Hacker One gives us a framework for doing so, as well as “defense in depth.”

Safe Mode

We’ve added a quick and easy Safe Mode switch to diagnose problems with third party plugins.

Discourse Safe Mode

This is an important milestone, along with improved plugin versioning in this release, but there’s still much work to be done in ensuring safety and stability with third party plugins.

Ember 2.10 Latest

At long last, we’ve been able to upgrade our client side JavaScript framework, Ember.js, to the latest version. We spent a long time on Ember 1.12 waiting for critical improvements on the Ember roadmap, such as Glimmer 2, and our patience was rewarded — thanks to Ember 2.10 (and two months of work by Robin), you can enjoy 30% smaller app payloads, and 2x the performance of Ember 1.12 on most devices!

Ember.js logo

As a developer, you can now refer to the most recent and latest Ember documentation when building plugins or enhancements for Discourse.

… And Much More

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

Easy One Click Upgrade

Who wouldn’t want all these fantastic new features? That’s reason enough to upgrade! But do note this is another major security release — we urge everyone to upgrade to it as soon as possible. Fortunately, upgrading is as easy as clicking the Update button in our simple one click updater. It’s linked right from your dashboard:

You may need to SSH in to update your server in some upgrade scenarios. But it’s easy!

cd /var/discourse
git pull
./launcher rebuild app

If you don’t have a Discourse to upgrade, why not? Install it yourself in under 30 minutes, or get a free 14 day hosting trial!

Thank You

As always, let us first thank our customers for their direct financial support, without which there would be no Discourse project at all.

No open source project survives without code contributions, and we had many in this release. Thanks for the pull request contributions in this release from:

cpradio
fantasticfears
pfaffman
caugner
gdpelican
vinothkannans
mabras
scossar
angusmcleod
JaredReisinger
mrded
joebuhlig
ibnesayeed
davidgnavas
kevintelford
BYWallace
SafaAlfulaij
gschlager
mcwumbly
Mogztter
LeoMcA
Dax74
kgish
jjaffeux
ryantm
acshi
guillaumekln
frictionel
mbajur
dtbaker
erlend-sh
rimian
steinwaywhw
bradleypriest
DanielMarquard
AhmadFCheema
jamesmarkcook
vibol
pmusaraj
jsilvanus
davidtaylorhq
bekicot
kstaikov
ming-relax
jako512
rizka10
amotl
toumou
saiqulhaq
maclover7
xwmario
jomaxro
thalic
lalehmb
ricardoalcocer
larrysalibra
BrianAdams
matthewpurcell
bethaitman
pwightman
x0rm3r
mrosack
seanlin0324
mscherer
eric-hu
magni-
pda
lbergnehr
phaldan
simongareste
theikkila
robbyoconnor
acorncom
jneen
koss-lebedev
ojab
ignisf
lonre
thiagoarrais
amasad
rriemann
pjv

Also, thanks to the greater Discourse community for their numerous contributions toward this release — translations in Transifex, posting support and bug requests on meta.discourse, or simply providing feedback based on extensive participation in multiple Discourse communities. All your suggestions make Discourse better for everyone.

For insight into what’s coming up in future releases of Discourse, keep an eye on the releases category at meta discourse. And now, onward to Discourse 1.8!

7 comments

Official Slack integration for Discourse

Erlend Sogge Heggen October 17, 2016

Today we’re making Slack chat a first class integration, available on all hosting plans.

discourse-plus-slack

Over time we’ve noticed that a whole lot of our customers use Slack, and we do too! The Discourse team uses Slack strictly as a team coordination tool for things that need to be discussed right now, but other teams are using Slack in all sorts of creative ways, even as a community hub.

We think Chat and Community are two great tastes that taste great together, and we’re happy to extend Discourse to better accommodate both. Our goal is for Discourse to become long term memory for your most important conversations, both for internal team members and your outside community, too. We’re only just getting started, but keep reading to learn about what is currently possible with the v1 of our Slack integration, and what’s coming up.

Wanna start playing with Slack? Hosted customers can enable the plugin by checking slack enabled in Admin > Site Settings > Plugins. The rest is configured on Slack’s end.

Self-hosters can download and install the plugin manually.

Cross-Posting From Discourse to Slack

The main goal of the plugin is to cross-post Discourse topics to Slack. You can also specify exactly which Discourse categories will automatically post to Slack, through the filter page at /admin/plugins/slack or, if enabled, the advanced slash commands below.

filter-rules

Optional Slash Commands

The plugin also allows you to optionally control the filters and other settings from the Slack side via slash commands.

slash-command

Rich Formatting

Topics cross-posted to Slack are suitably prettified, with site logo, avatar, username / fullname, category name and category color:

rich-formatting

Coming soon: Copy a Slack conversation to Discourse

Take a snapshot of a discussion in Slack and post it as a topic in Discourse. The output will be a cleanly formatted chat transcript that can be further edited if necessary. The folks at Dgraph already created a version of this as Wisemonk – a Slack bot to move discussions from Slack to Discourse. We’re big fans of that idea, too!

Discuss our official Slack plugin on meta.discourse.org.

1 Comment

Discourse 1.6 Released!

Jeff Atwood August 5, 2016

We’re thrilled to announce that today marks the release of Discourse 1.6!

Enhanced Security

Like any responsible open source project, we take security very seriously at Discourse. We try to roll out fixes for security issues within a day of being reported and reproduced. However, this particular release had two major customer contributions to security in the form of formal security penetration testing efforts from

This is the first time Discourse has ever enjoyed formal penetration testing. These were intense, multi-week initiatives involving major effort from security professionals. We fixed one serious exploit, and shored up a half dozen other areas that could have had better protection. Huge thanks to Vertex Technologies and Nest for these major contributions to an open source project, far above and beyond being a hosting customer. Every Discourse instance in the world benefited greatly from these structured testing efforts! Thank you so much.

Vertical Timeline

Perhaps the most obvious change in 1.6 is the new vertical timeline in the right gutter.

The right gutter design dates back to the original 2013 Discourse release, and we were growing increasingly uncomfortable with that aspect of our design over time. In 2014 we started brainstorming better ways to visualize the “timeline” of a topic. In 2015 we began planning to build a custom scrollbar. All that planning has finally landed in 1.6. When the browser is wide enough to allow it, you get a nice visualization of the timeline of a topic on the right hand side, adjacent to the topic.

begin-at-the-beginning

  • We think of topics as storytelling, and every story has a beginning and end. Quickly jump to the beginning or end by clicking or tapping on the dates at the top and bottom of the timeline. Or you can use the home and End keys on your keyboard, of course.

  • Discourse topics can be thousands of replies long, much larger than a simple scroll bar can properly represent. With the vertical timeline, we always show you your current position, with date and reply count, so you know exactly how far you’ve come in the topic, and how far you have left to go. (Something we haven’t done, but perhaps should in the future, is show significant time gaps in the timeline, or bookmarks.)

  • When you’re reading a topic for the first time and jumping back in time to refer to something that happened earlier, we’ll highlight your farthest read position and offer you a handy Back button to quickly jump back to it any time. Never lose track of where you were.

  • Certain topic level actions used to be only possible if you were at the bottom of the topic. But now the topic reply and notification level buttons are always visible in the right gutter, under the vertical timeline. If you want to reply immediately, go right ahead. It’s not like we could stop you even if we wanted to. If you are super interested (or super not interested) in this topic, change your notification level right now, from wherever you happen to be reading in the topic.

Clearer, Easier Polls

We’ve revamped the Poll UI to be clearer and less button-y, as well as offering public polls, automatic sorting of poll results when viewing the poll, and more!

There’s no need to remember special poll syntax any more: you can visually build a poll using the little gear button in the editor now. (Spoiler alert: this also applies to spoilers.)

Convert Topics to PMs

Discourse is designed around the idea that it’s healthier and more useful for stuff that happens in email to happen in public, whenever possible. But we’ve always supported a rich set of private category permissions, in addition to easily accessible personal and group messaging.

When people asked for the flexibility to turn a public topic into a personal message, we weren’t sure this made sense. But now that we greatly enhanced group messaging in 1.5, it does. So you can freely move topics from public to private as needed via the admin wrench menu on a topic.

This is a two-way street — if someone sends a personal message and they agree it would work better as a public topic, you can also convert that message to a public topic as needed!

Merge Multiple Posts

Discourse works best when people post complete thoughts — constructed with paragraphs and multiple sentences. But sometimes people write several very small responses in rapid succession that would be easier to read as a single, slightly larger post. (We do, in fact, warn the user when they’re creating more than 3 posts in sequence, but even 3 is a lot!) It’s now a bit easier to address this situation when it comes up, as staff can now combine multiple posts by the same user into a single post.

This is something we’ve wanted to do since forever, and was generously contributed to the project by Andre Pereira.

Duplicate Link Warning

Another core idea behind Discourse is that a conversation should avoid repeating itself. To the extent that a conversation has devolved into people saying the same things over and over, we have failed you. With that in mind, we’ve instituted a just-in-time warning that you’re about to post a link that was already posted earlier in the topic.

We find that a link which appears multiple times in a conversation is a strong signal that the conversation is repeating itself — again. Hopefully this will encourage people to take the conversation in new, interesting directions!

Easy, Contextual Unsubscribes

Discourse relies heavily on email. Your email address is:

  • your primary form of identity
  • how you log in
  • how we notify you when someone’s talking directly to you and you aren’t around.

We also automatically send weekly summary emails with the most interesting content if you haven’t visited the site in a week or more.

With that in mind, we want to make it as easy as possible for people to opt out of email if they find they are getting too much of it, or lose interest in the site. In 1.5 we added an easy unsubscribe option specific to digest / summary mails that didn’t require the user to log in, but we’ve now extended that — and then some — to all emails we send.

d16-improved-unsubscribes-alt

Now you can easily go from “Hey, no more on this particular category / topic” to turning all email off with a few simple clicks, for any Discourse you participate on.

And so much more

d16-anchor-links

Finally satisfying a long running request, you can now deep link to headings in a post to better support long, structured wiki or documentation topics.

d16-custominvite

To make your invitations a bit more personal, you can optionally add a little introductory message before you send it out.

d16-new-badges

We like to add a few badges in each release to encourage experimenting with Discourse features and engaging in positive, community building behavior. For this release we added the bronze First Emoji, First Mention, First Onebox, and First Reply By Email badges.

d16-watch-new-topic

Another request that kept coming up time and time again is wanting to be notified of new topics only. We thought this made a lot of sense, so we’ve added it as a fifth state to category notification levels: Watching First Post. Now you can get pinged every time a new topic is created in any category.

d16-windows-emoji

Discourse allows the site owner to specify one of four default Emoji sets: Apple, Android, Twitter, and Emoji One. We’ve updated our default Emoji One set to the latest spring 2016 update. We’ve also added a whole new Emoji set in 1.6 — the official Windows 10 Anniversary Emojis, just released a day ago. We were able to do this with special permission from Microsoft, courtesy of Shelley Bjornstad and Jonathan Sampson. Thank you!

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

Easy One Click Upgrade

There’s great new functionality in 1.6 that makes it completely irresistible, we know, but this is also a major security release — we urge everyone to upgrade to it as soon as possible. Fortunately, upgrading is as easy as clicking the Update button in our super easy one click admin updater. It’s linked right from your dashboard:

You may need to SSH in to update your server for this release due to the Postgres upgrade it includes. To do that, simply SSH in, and issue these commands:

cd /var/discourse
git pull
./launcher rebuild app

If you don’t have a Discourse to upgrade, why not? Install it yourself in under 30 minutes, or get a free 14 day hosting trial!

Thank You

Let us first thank our customers for their direct financial support, without which there would be no Discourse project at all.

This release marks the end of our email improvement sprint, graciously supported by our Mozilla Open Source Support program grant in December. We will of course continue working on email features, but we’ve successfully completed all the big ticket items on our MOSS roadmap.

No open source project survives without a vibrant community, and we are so fortunate to have one! Thanks for the pull request contributions in this release from:

gschlager
cpradio
fantasticfears
gdpelican
mcwumbly
xfalcox
frictionel
DeanMarkTaylor
NickIvanter
scossar
shaktikatare1989
dachary
stevenpslade
NuckChorris
Mittineague
zachGlasgow
rimian
acshi
oskarrough
oppegard
thorbenegberts
aedensixty
davidgnavas
tobiaseigen
johndbritton
karies
damiencaselli
williamherry
xfix
skx
DavidKeller
danielhers
tareko
HarlemSquirrel
jamescook
discoursehosting
pthomas551
linc01n
sijad
rcanand
steinwaywhw
markwingerd
fefrei
tnorthcutt
ming-relax
vinothkannans
eriko
ryantm
asdofindia
ladydanger
voiprodrigo
probus
Raddah
henrikbg
glynhudson
Draivin
th0br0
prosanelli
adamcapriola
retlehspjv
kuon
pfaffman
dandv
fbender
samnazarko
mjtko
YesThatAllen
palant
bitsapien
ignisf
wk8
seanmakesgames
andrew
glaucocustodio
calasyr
devchakraborty
tkriplean
thelostt

Also, thanks to the greater Discourse community for their numerous contributions toward this release — posting support and bug requests on meta.discourse, or our personal favorite, providing feedback based on extensive participation in multiple Discourse communities. The more the merrier!

For insight into what’s coming up in future releases of Discourse, keep an eye on the releases category at meta discourse.

2 comments