blog

archives

Discourse 1.9 released!

Jeff Atwood January 8, 2018

We released Discourse 1.9 on January 3rd, building on Discourse 1.8 from last June.

Show Who’s Replying

Discourse is all about replies being disconnected in time and space, but we agree that showing when people are actually replying to a topic is genuinely useful in a variety of contexts. So we’ve added live indicators at the bottom of a topic, and in the composer itself, to let you know when other people are actively replying.

You may also notice we’ve restyled the composer to bring it a lighter, airier, more modern look.

Improved Emoji Selector

We’ve completely revamped the emoji selector to support search by typing and skin tone selection — and of course we’ve incorporated the latest Unicode Emoji, too.

We’ve also added support for the Messenger emoji set (in addition to Apple, Twitter, Google, Microsoft, and EmojiOne), which is selectable in your admin site settings.

Improved Rich Pasting

Discourse natively supports basic bbcode, HTML, and of course Markdown. When pasting content into the composer, we’ll now attempt to convert what is in your clipboard to native Markdown on your behalf!

This turned out to be a bit more complex than we expected, but Excel (and clones) table pasting definitely shipped in 1.9, and further HTML / RTF paste conversions are behind the enable rich text paste site setting — update to 2.0 beta and flip that flag to see it working live!

Better Automatic Link Formatting

If you paste a link on a line by itself, Discourse will summarize the link on your behalf — we call this oneboxing. We’ve improved our default onebox to support more metadata from the link, such as the site icon, the date, and the site title.

Discourse 1.9 improved onebox metadata

And now, even if you paste a link that’s not on a line by itself, we’ll summarize that link for you by pulling the title out of the link, like so:

We call this “inline oneboxing”, and it’s on by default for internal links. If you’d like to turn on this feature for all links, tick enable inline onebox on all domains in your site settings.

Admin Search Stats

Discourse has robust native search and advanced search, as well as excellent web spider search indexability through Google and other popular search engines. But nothing beats looking at what your community is actually searching for and making editorial tweaks to ensure that the most searched for information is easily available. To that end, we now show stats in the admin dashboard on what people are actually searching for on your Discourse:

Large Image Handling

Discourse tries to onebox and mirror all remote linked images by default, so that your topics look good, and don’t decay over time as images disappear from the web. But we also don’t want to use up all your file storage — or blow up your mobile plan when someone links a 30 megabyte GIF file! We now provide better visual feedback when giant remote linked images are posted:

Discourse image too big to display

Watched Words

One question we heard a lot from site owners was how to take action based on the presence of certain words (or word patterns) in posts.

Discourse 1.9 watched words

As of Discourse 1.9, you can set it up so that when any particular word or words appear in posts, you have the option of automatically flagging the post, censoring those specific words, requiring manual staff approval for the post, or completely blocking the post altogether.

Improved Personal Messages

If you’d prefer not to receive any personal messages, you can now disable those in your user preferences. (Staff PMs will still go through, of course.)

Discourse 1.9 disable PMs

Speaking of staff, it’s now possible for staff to specify an email address in PMs, if you want to bring someone into a PM that isn’t yet a member of your Discourse.

Discourse 1.9 email address in PM

Improved Groups

All security in Discourse is handled through groups, and we continue to refine groups in each release to make them easier to understand and organize. If you are a group owner, it’s now possible to send an invite that includes membership in your group:

Discourse 1.9 invite to group

If you are a member of the group and would like to send a message to the entire group, we’ve added a helpful message button to the group page.

And More!

These are just highlights of 1.9 — there are literally hundreds of other tiny improvements, refinements, and bugfixes in the full release notes.

Easy One Click Upgrade

We launched a public exploit bounty program at Hacker One as a part of our security policy one year ago. We continuing to follow up on any concerns and issues raised, and there are important security fixes in 1.9, so we urge everyone to upgrade to it as soon as possible.

If you are on our hosting, you’re already upgraded. Otherwise, upgrading is as easy as clicking the Update button in our built in one click updater linked right from your dashboard:

In some upgrade scenarios, you may need to SSH in to update your server. It’s just 3 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

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

Any open source project is only as good as its code contributions, and we’re lucky enough to have 104 contributors in this release — 17 more than last time! Thanks for the pull request contributions in this release from:

davidtaylorhq
angusmcleod
minusfive
nbianca
dmacjam
smasry
LeoMcA
xravnz
pfaffman
rewphus
bekicot
SidVal
majakomel
fantasticfears
quangbuule
ekkans
nihgwu
meglio
pmatsinopoulos
BenjaminBorowski
OsamaSayegh
sdsykes
saiqulhaq
Toxu-ru
rizka
soulshake
spatten
gdong
discoursehosting
featheredtoast
ckeboss
noisegratte
jamesn
HossamYoussef
radar
nbish
seanmakesgames
RoldanLT
robbyoconnor
rriemann
albaguirre
cpradio
begrif
jen-v
kajatiger
notriddle
blokovi
JulienLoisel
timcraft
gfx
mcmcclur
JafethDC
frabrunelle
spog
Fryguy
esparta
Aerilius
mcwumbly
umanoda
ignisf
ttanimichi
schungx
lalehmb
MakaryGo
dbx
hisashi-komine
cglewis
yakschuss
tusharbisht
glebm
felicianotech
tnorthcutt
iamntz
LeoColomb
barryvan
hosnas
meldsza
farmdawgnation
ryantm
mtawil
mudasirraza
jtaylor
johnmuhl
lelelelemon
darix
ivar
tophee
guoyunhe
balshor
henrik
lidimayra
ecdemis
gojomo
pmusaraj
viktorbenei
jonbartlett
bill
quimgil
gdpelican
coderberry
typeoneerror
phaldan
orlando

We had a remarkable number of translators in 2017 who contributed their time and effort into translating Discourse into dozens of languages. It’s because of you that so many people in the world can benefit from great free, open source discussion software!

Finally, thanks to the greater Discourse community for posting support / bug request / feedback topics on meta.discourse. All your suggestions make Discourse better for yourself, and everyone else, too.

As far as we’ve come with Discourse, there are so many important things left to do. Keep an eye on the releases category to see what’s coming … and we’ll see you in Discourse 2.0!

0 comments

Discourse Gives Back 2017

Jeff Atwood December 21, 2017

We’ve had a fantastic year at Discourse, growing our team to 20 21 people. (There’s also something exciting and major happening early in 2018 that we’ve worked hard on for the last six months that we can’t quite announce yet. But trust me when I say we are very excited!)

open source word cloud

Starting from our initial prototype work in late 2012, Discourse has always been a 100% open source project that builds upon the decades of hard work of many other open source projects to survive. We try to contribute as many upstream fixes as we can, particularly in the case of bugs we run into along the way — but we can and should do more. I’m happy to announce that this year, we’ve grown large enough to earmark funds to contribute directly to the projects we rely on most:

Ember.js $20,000 — Our most critical technology bet when we started in 2013 was on the idea that full blown applications will be built in the web browser, using JavaScript. Ember.js was one of the earliest frameworks for building ambitious JavaScript applications, and continues to be one of the best out there. We’re very encouraged by the recent focus on performance by the Ember team, and we’ve tagged this substantial donation for that continued goal.

Jenkins $5,000 — While we may be beginning to outgrow Jenkins as a build system, for the last few years it has been absolutely essential to everything about our software development process and continuous integration, where we build try.discourse.org live on every single GitHub checkin, and deploy rolling beta changes to our customers by tier.

Debian $5,000 — We run Ubuntu Server on all our colocated servers, and Ubuntu is based on the Debian Linux distribution. Without great free, open source operating systems our hosting would be considerably more expensive.

Postgres $5,000 — Discourse’s primary data storage is via the open source Postgres database, which has outstanding performance, proven itself extremely reliable, and generally been a pleasure to work with. We’re looking forward to our global Postgres 10 upgrade in 2018 as well for even more free performance and features!

RubyGems $5,000 — Without the public, shared RubyGems hosting repositories it would be impossible to build any Ruby application, including Discourse.

Linux Conference Australia $4,000 — As the largest linux and open source conference in the Asia-Pacific region, this is near and dear to the heart of our very own Matt Palmer, who hails from Tasmania and basically single handedly got Discourse to where it is today on the hosting side. We’re thrilled to support the conference and the growth of open source software in this area of the world.

Rails Girls $2,500 — We strongly support diversity in the field of software development and have mentored Rails Girls teams for the last four years. We’re also working with Outreachy this year as well, and we pledge to continue to contribute strongly in this area as we grow and have more resources to bring to bear.

Let’s Encrypt $2,500 — Widespread and pervasive encryption helps the web become more resilient and resistant to tampering. We’ve supported this goal with a free enterprise hosted instance for Let’s Encrypt support, as well as a yearly direct monetary donation in at least the amount we would have paid commercially for these now free-for-everyone SSL certificates! Here’s to a more secure web, for everyone.

EFF $2,500 — Discourse is a project that is fundamentally about communities truly owning their own spaces online, rather than temporarily renting space from a giant corporation. Some might call that freedom. The Electronic Frontier Foundation fights for everyone’s digital freedom and we’re proud to support them for 2017.

The Internet Archive $2,500 — Many of the design decisions in Discourse revolve around retaining digital history, such as automatically downloading topic images so they aren’t lost via web rot over time. There is no single organization working to provide a collective memory for the web like The Internet Archive, and we believe future generations will thank them.

OSD $1,000 — Open source software sometimes gets a bad reputation for user interface. The Open Source Design project aims to change that. We support this goal with a free hosted Discourse instance, and now a direct financial contribution as well.

While it’s not a direct donation, per se, we have also paid out $7,872 in Hacker One bounties for valid security issues in 2017 that white hat hackers have reported to us — a special thanks for your efforts in keeping Discourse safe and secure (and free!) for everyone.

Additionally, we became a gold Unicode sponsor by adopting (what else?) the discussion emoji for $5,000:

Discourse, official gold sponsort of the unicode consortium

As 2017 winds to a close, we’re looking forward to 2018 and making these direct financial contributions a regular thing. As we work together, let’s continue to make open source software a part of the public good for everyone.

9 comments

Who is Discobot?

Jeff Atwood August 29, 2017

As of Discourse 1.8, every new user who joins will get a welcome PM from discobot:

discobot greeting

Discobot is a natural extension of our original, static welcome PM. However, Discobot is much more than a greeter; it also offers to interactively “play” the Discourse game with each new visitor.

The goal here is to teach people Discourse by inviting them use Discourse, interactively replying to a PM in the same way you’d reply to a real person. If you’re curious about how it works, watch the video above, or create a temporary account at try.discourse.org and give it a shot live. Why require people to read a boring old wall of text when they could try their hand at replying to a real PM topic in Discourse instead? Learn by doing!

Note that @discobot has a complete profile, so if anyone wonders who it is, they can learn more by visiting that profile, just like they would for any other user:

discobot user profile

If you’d like to customize @discobot for your site, please do! You can edit the bot’s username, full name, avatar, about me and other fields in the same manner you’d edit it for any user. Just visit discobot’s user page, select the preferences tab and begin editing!

discobot user preferences

Note that the “About me” field is on the Profile subtab, and contains this text by default

Hi, I’m not a real person. I’m a bot that can teach you about this site. To interact with me, send me a message or mention @discobot anywhere.

Feel free to edit all the profile fields, the profile picture, and the about me; changing any of this won’t interfere with the interactive narrative at all.

Although you can’t (yet) build your own interactive narratives, every single bit of text in the narrative can also be customized from Admin, Customize, Text:

editing discobot gretting text

We typically recommend searching for a specific word or sentence to find exactly what you want to change. Remember all text in Discourse can be customized — search for narrative_bot to find just the text associated with discobot.

Discobot will also reply when someone mentions @discobot the name in any topic, public or private. The bot has a few parlor tricks up its sleeve:

discobot topic commands

This is mostly for fun, but there are two badges associated with completing the new user tutorial, and the advanced user tutorial. So you may want to ask @discobot to begin the tutorial narratives if you want the badge, but joined a Discourse before discobot existed.

There are also a few other ways to customize the behavior of discobot in Admin, Site Settings. Just search for “narrative” to locate these settings:

discobot site settings

Here in the site settings, you can:

  • disable the bot entirely :(
  • disable the welcome post sent to new users
  • switch the welcome post from an interactive narrative to a non-interactive quick start guide
  • add a delay to the time the first PM gets sent to each new user
  • disable public replies when someone mentions @discobot

We hope Discobot is helpful as a live, real world tutorial and onboarding for new Discourse users. We also have plans to build an interactive moderator narrative in the future for new moderators, to complement our moderator guide. Give it a try and keep your feedback coming —
we’ll continue to refine and improve our narrative bot experience as we go.

15 comments