blog

archives

Using Discourse as a community-powered wiki

Erlend Sogge Heggen May 3, 2016

The following is a guest post by Sam Nazarko, CEO and founder of OSMC.tv

Are you using Discourse in a novel way? If you’re interested in writing a guest post like this one, please get in touch.

In 2014, I started working on a new project, OSMC (Open Source Media Center). OSMC is a free and open source media player based on Linux that lets you play back media from your local network, attached storage and the Internet.

osmc-frontpage

 

As the project started to accumulate users, we wanted to help the newcomers as much as possible and ensure that they could get the resources they wanted. The need for a Wiki became abundantly clear but I wasn’t sure that popular Wiki software was the best fit for us. For a while we worked on our own GitHub based Wiki system. GitHub had a markdown editor, but it still left a lot to work out for newcomers and the process wasn’t as smooth as we had expected.

After some thought, we realised that Discourse had everything we wanted. Users familiar with posting and the WYSIWYG editor would be able to edit or add to the Wiki without any additional learning curve, and they wouldn’t need to hold an additional account on an external Wiki site. Mark Theis (OSMC’s web developer) and I got to work. By the end of the day, we had a Wiki category in Discourse and some basic scripts that scraped this forum category every half hour and published the pages on our website as static HTML. We scrape Discourse via the Discourse REST API and build templates for our blog.

omsc-wiki

 

It’s working well. Edits are easily trackable, and Discourse’s permission system ensures we have fine control over edits on the website. The new implementation is also very fast, as we build the Wiki pages as static HTML and cache them. Discourse has already proven its ability to handle large numbers of posts, so unlike other Wiki software, I’m not concerned about performance problems as the Wiki scales.

There is certainly room for improvement with our Wiki. We scrape each post from the Wiki category and get the post content as JSON. This JSON contains pre-formatted HTML. In the future, it would be good to be able to access the post as Markdown and have more control over the styling of the content. Editing posts is simple enough, but adding new categories or new articles is still a little too complex for some users, and this is something we’d like to simplify in the future.

The Wiki needs a lot of work, but we’re glad to have implemented something stable and easy to use that will last for many years to come. We are now looking at using Discourse to power our new Newsletter system for the same ease of editing and great durability.

You can get the source code here:

  1. https://github.com/osmc/website/blob/master/server/wiki.php
  2. https://github.com/osmc/website/blob/master/server/wiki.js
Leave a reply

Beginner’s Guide to Creating Discourse Plugins

Jeff Atwood April 14, 2016

Part of our important work with Rails Girls in 2014 and 2015 was not just to mentor and encourage new developers, but also evolve Discourse into a platform that’s generally friendly and easy for developers to build on.

We’ll be working with the Rails Girls project again in 2016, and this year will be our first with Google Summer of Code. As we work with novice developers and help them get comfortable building on Discourse, we get better at it, and our Discourse extension points and plugin story continues to improve.

start-scrabble

For example, last year Robin put together a great six part series in the #howto category on meta, the Beginner’s Guide to Creating Discourse Plugins:

  1. Introduction
  2. Plugin Outlets
  3. Custom Settings
  4. Git Setup
  5. Admin Interfaces
  6. Acceptance Tests

This year, we’ll work with our GSoC teams and Rails Girls to dogfood these plugin tutorials even more and further refine them. They’ll be building cool new features and plugins with stuff like webhooks, canned responses, feature voting, low-end device pure HTML mode, better chat system hooks, user-centric activity digests, better color theme previewing, and so on.

In the past, we’ve hosted a general discussion topic on meta for these groups — here’s the one we used for Rails Girls in 2015 — and we encourage the whole community to collaborate on what’s being built and provide feedback alongside us. That is, after all, exactly what Discourse is designed for — collaboration through discussion! Keep an eye out for the upcoming 2016 discussions on meta in the next month or two.

This year, we’ll also be setting up Digital Ocean droplets with test Discourse instances for the teams to experiment and install their plugins on. Of course, anyone can install Discourse in the cloud in 30 minutes, but we want to make sure the post-install plugin installation and troubleshooting story is as clear and problem free as it can be, too.

If you too are looking to build on the Discourse platform, I hope these Beginner’s Guides to Creating Discourse Plugins are useful – please let us know how they can be improved!

Leave a reply

Discourse 1.5 Released!

Jeff Atwood April 1, 2016

We’re proud to announce that today marks the release of Discourse 1.5! This was a huge release that took us almost 7 months to build:

5× Faster Topic Page

Perhaps the most significant improvement in this release is a dramatic overhaul of our topic page for a 5× speed improvement. That’s right, the topic page – the page where most people will spend most of their time in Discourse – is a whopping five times faster!

Some before and after benchmark timings from Robin’s detailed blog post:

Large topic, initial visit

Desktop Nexus 7 Nexus 6p
633ms 4078ms 1248ms
120ms 636ms 248ms

Large topic, repeat visit

Desktop Nexus 7 Nexus 6p
429ms 2757ms 710ms
69ms 350ms 152ms

For those of you keeping score at home, that is indeed 5× faster on all devices on average, and an incredible 6-8× faster on older Android devices.

Improved Badges

Discourse’s badge system is a fun way to teach community members not only how the site works, but also what positive community behaviors we encourage. In this release our Badge system got greater prominence with a much needed visual overhaul, as well as improved long descriptions that better explain what each badge is for.

discourse-badges-v15

We also introduced a number of new badges to encourage regular use of likes, and liking in return:

  • Out of Love — Used 50 likes in a day
  • Appreciated — Received 1 like on 20 posts
  • Gives Back — has 100 liked posts and gave 100 likes
  • Higher Love — Used 50 likes in a day 5 times
  • Respected — Received 2 likes on 100 posts
  • Crazy in Love — Used 50 likes in a day 20 times
  • Admired — Received 5 likes on 300 posts
  • Empathetic — Has 500 liked posts and gave 1000 likes

Share the love!

User Summary Page

While Discourse has top users and top topics, one thing that’s been missing is a way to see an individual user’s top contributions to the community. But now you can! Just visit the Summary tab on any user page to check out their “greatest hits”:

discourse-user-summary-v15

We’ll continue to refine and improve these summaries to make them more interesting, and better show off your most interesting contributions to the discussions.

Customize ALL Text and Email Content

This one has been requested forever, and was a ton of work. Did I mention this was a long release cycle? But it was all worth it because you can finally edit any – literally any – text or email content in Discourse and customize it exactly how you want.

Want topics to be “threads”? Users to be “funkatrons”? Like to be “brofist”? Well, Discourse is your huckleberry. Go forth and customize any text you see on the screen, anywhere, in Admin / Customize / Text Content.

Group and Category Mentions

You know how you can type @username to mention someone, and have them get notified, in Discourse? Pretty cool right? Now you can do that very same thing with @groups too, if the group settings allow. Similarly, you can mention #categories to get a handy list of categories and a quick link to any category. (Category mentions don’t ever generate any notifications, though, because that would be a little nuts.)

Better Incoming Email Support and Group Private Messaging

One of the primary targets of Discourse is mailing lists. Whenever information is getting stuck in those mailing list private email silos, we think you’re better off sharing that information with others.

But there are a few cases where you might not want these emails to be public. One of those use cases is a shared support email inbox. Such as … the one we run at [email protected]. We belatedly realized we should be feeding our own incoming support, feedback and sales emails into our Discourse as group private messages that are visible to our entire team.

While we dogfooded this feature over a period of months, we vastly improved our incoming email handling and group private messaging. We also now show additions and removals to private messages directly in the stream, so you can better tell who you’re talking to in a private message:

discourse-invite-stream-notify-v15

Please see the detailed incoming mail howto Régis put together for more details!

Mobile Editor Toolbar and Preview

Our mobile editor was enhanced to include a toolbar (if your device is large enough to display it, sorry iPhone 4) and a preview button. To show or hide the toolbar, tap the hamburger icon at upper right.

discourse-mobile-editor-v15

Now while on mobile you can more easily do things like add emoji, turn your post into a private whisper, or see a preview of your post formatting before you reply.

And so much more

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

Easy One Click Upgrade

It’s safe to say that 1.5 is the best release of Discourse ever. Upgrade your Discourse instance today to get all these great new features via our super easy one click admin updater. It’s linked right from your dashboard:

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 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 participation in your very own Discourse community.

In particular, we’d like to highlight significant pull request contributions in this release from:

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

5 Replies