The Relaunch of WPChat, powered by Discourse

WPChat was a website I started a while ago to discuss WordPress topics in a live chatroom.

After testing a few “plugins” for live chats within WordPress, it eventually turned into a page with an embedded iframe to a freenode IRC channel.

This is what it looked like:


It was pretty popular among a good chunk of people in the WordPress community, but has been relatively dormant for a few years now.

I’ve decided to relaunch the site, using Discourse as a platform. Whether it catches on or not is anybody’s guess, but I did learn a thing or too in the install process.

Here is the after shot:

The new, Discourse-powered WPChat.

I’m going to outline my experience below.

Taking the 5-minute-install for granted

I come from a world of PHP-powered software. Where you can comfortably set up a MySQL database in cPanel, change a few config options, click a few buttons, and voila, you have a fully functional website.

Discourse is a little different.

It’s written in Ruby, uses PostgreSQL for its database, and the install process is a bit more complicated than the famous “5 minute install” I was used to with WordPress.

Had I installed it before, I definitely would’ve echoed the sentiments from some of the people on this 7 Aspects of WordPress I Take for Granted article at WPTavern.

Installing Discourse

If you have a lame-o shared hosting account, this ain’t gonna work. You should ideally have an entire server (virtualized or otherwise) dedicated to running your Discourse installation.

Luckily, nowadays, there are lots of awesome cloud hosting providers that let you spin up virtual servers quickly and inexpensively.

I went with Digital Ocean (this is a referral link).

I also let something called Docker do most of the heavy lifting for me, thanks to this Beginners Guide to Deploy Discourse on Digital Ocean using Docker tutorial.

I went with a 1 GB RAM server (the minimum required to run Discourse), so if you did as well, follow this tutorial to add swap space before you get started. If you went with a 2 GB RAM server, this step may not be necessary.

Some notes:

  • It’ll take a while to write a 2 GB swapfile and you won’t see any feedback in your terminal while it’s being made, so don’t get impatient or try to kill the process, otherwise the file will be cut short.
  • I made this mistake on my first go-round, but don’t try to install stuff like Nginx or PostgreSQL separately, the Docker install handles ALL of that for you
  • I attempted to install my own SMTP server on the same droplet, but found the process a bit too confusing. I decided to just sign up for a free Mandrill account and let it handle my emails for me. It’s free up to 12k emails per month and from the makers of MailChimp. It just works when you plug in the SMTP details to your app.yml file.
  • Once you start running the Docker installation script, it takes around 10 minutes for it to complete, don’t sit around staring at it while it does it’s thing. Grab a coffee or something.

Customizing the look

Although you can use custom CSS and stuff, there doesn’t seem to be much of a market for “premium Discourse themes” and the like.

As for color scheme, I didn’t venture too far from the stock one.

I changed the header background to WP Chat’s signature baby blue, and navigation buttons and links to be the old orange color.

Since there’s no FTP, the default Discourse installation creates a staff-only “Assets for the forum design” thread to upload custom images and such.

After it uploaded to the server, I just copied the relative URL to the image in my customization settings, and it worked.

I thought this was a pretty interesting way to handle it. Because Discourse seems to primarily utilize relative URLs, a lot of stuff will be functional directly from the IP address of your droplet.

Why Discourse, and not bbPress or BuddyPress?

I know bbPress and BuddyPress, both WordPress plugins, are logical choices to build a community about…well, WordPress.

But when I first came across Discourse, thanks to Roots, I fell in love with it.

Discourse just has a more modern feel to it. The instant flow of discussions, the notification features, it just feels much more like a chatroom, rather than a more traditional piece of forum software.

I felt it fit much more inline with the “brand” of WPChat, and just thought people would enjoy using it better.

It wouldn’t be the first WordPress-oriented site that didn’t actually run on WordPress.

And luckily, they’re all on the same GPL v2 license, so they’re welcome to draw inspiration and code and improve off of each other.

Final Thoughts

Overall, I found the Discourse installation to be not too painful, although it took a bit longer than what I’m used to. And for the really awesome experience it provides, I think that’s a small price to pay.

I’ll chalk that one up to WP’s easy install process spoiling me.

The Future of WPChat

As far as WP Chat goes, I really do hope it takes off. I’ve found a lot of the best community discussions are much too fragmented and ephemeral.

Having to piece together what’s going on in the WordPress community through a series of blog comments, tweets, subreddits, Facebook groups, and the like can be kind of a chore.

I’m happy to bootstrap the cost for now, but as it grows, hopefully a sponsor can come on board to help keep the lights on.