Discourse: The way software should be

As you may have heard, I recently set up Discourse as my blog commenting system:

Installed @discourse on @digitalocean for my blog. Amazingly easy. http://t.co/U13jkoLssD

— Dave Zych (@DaveZych) August 15, 2014

I have to say I could not be more impressed with it.

Setup

The setup of Discourse is ridiculously easy. Like, stupid easy. I’m pretty sure my 9 month old daughter could do it and she smashes bananas in her ear. Using the Docker setup, they say you can set up Discourse in 30 minutes – I think they’re underestimating us users. From scratch it took me about 20 minutes, and that includes setting up a Mandrill account and the Digital Ocean droplet (this is also a credit to Digital Ocean’s ridiculously easy droplet setup). Other than doing some minor configuration the docker image basically runs itself.

You can also do everything manually if you’re crazy enough to not use the Docker setup. I haven’t tried it so I can’t comment on that setup, but it doesn’t seem like it’s that big of a deal.

Updates

The update process is even better. The system continuously checks for updates, and it sends an email and alerts you in the admin section when an update is available. The updates are all one-click-installs and are painless.

The best part is that they come straight from Github. When a new release is ready, they create a tag in Git which signals that there is an update available. Just think about that for a second. All they have to do is run git tag -a vX.X.X* and that signals to all Discourse installations that an update is available. They don’t have to generate patches or release packages or self host downloadable binaries. Just a tag. It’s an ingenious way of providing updates that is incredibly effective.

Usage

There’s not a whole lot to cover here. The whole user experience of Discourse is fantastic – everything’s async and even though it’s still beta software I haven’t run into any bugs. Their description of the application is (emphasis mine):

Discourse is a JavaScript application designed for the next 10 years of the Internet…

and that’s the way the web should be.

Open Source

I was debating on whether or not to include this section but (obviously) ultimately decided to. I’m a rather big proponent of OSS but saying that it’s the way software should be would be a little presumptious of me. There are many great systems that are not only closed source but need to be closed source. Github is a great example – they’re system’s goal is to help developers share code yet the system itself is closed source because it’s easier to sell when closed.

But Discourse’s goal and mission statement are different.

Use the principles of open source software and “let’s make the fabric of the web better for everyone” ideals. Like WordPress, we plan to be the best possible host and service provider for our own software, and grow into an entire ecosystem.

OSS is engrained in their existence and the benefits of this are numerous:

  • Developer ecosystem – Creating a strong developer community is almost essential to the life of software, and that includes both accepting pull requests for fixes and having a strong plugin system. Instead of exposing a plugin API with some shoddy documentation, the code is the API.
  • Bug reports – What better place for users to file bugs than right alongside the code?
  • Living, breathing system – Having your code repository out in the open allows people to monitor progress and see the software come together. They see life.

If you look at those points, overall it’s the accessibility that open source gives that really drives the software. Accessibility to users and developers.

I have to say that I’m thoroughly impressed with Discourse. It’s the WordPress of forum software and that’s a great thing. In my eyes, it sets the standard of what web software should be and I think we should all follow in their footsteps.


* It looks like they don’t used signed tags which surprises me a little bit.