Why Discourse?

So the obvious question arises: Discourse is a forum discussion platform, meant to be used by multiple people to, well, talk about things, together. Why use it as a tool to publish writing that is primarily from one person?

Well, it turns out to actually be incredibly well-suited to the task, and I have to credit my friend Karthikk Vijay with this initial insight. I ended up setting up my garden before he did, but using Discourse for this purpose was his idea, and I am indebted to him for the freedom it has already brought me (for more on that see Why I started a digital garden). Read more about his original inspiration in his Productivists forum post (also running on Discourse! :grinning_face_with_smiling_eyes:)

Why Discourse is Great for a Digital Garden

There are actually many reasons why Discourse works well for the “digital garden” concept. Interestingly, many of the needs of a community seem to overlap with the modern concept of a digital garden. For example “backlinks”, in some sense a novel feature of tools like Roam, have been part of Discourse for quite some time, perhaps even pre-dating Roam’s implementation.

So here’s a non-exhaustive (and not necessarily in the best order) list of why I chose to run my digital garden on Discourse. Like everything here, it will evolve (and hopefully improve!) over time:

  • Quick and easy to get started (though see “Hosting Requirements” below)
  • Setup and administration are remarkably easy, e.g. there is a simple search function to find almost any setting quickly
  • Highly customizable, generally in a way that is compatible with core updates
    • For example you can add “Theme components” which add a lot of functionality, and associate them only with specific Themes, which brings a lot of flexibility. On the right :point_right: you can see a Table of Contents component in action.
    • You can also override CSS in multiple ways at various levels of structure, areas of the system, etc.
    • In many cases you can even target customizations to only mobile or only desktop versions, if needed (for example the top menu component here causes the mobile logo to get squashed, so I simply disabled it on mobile only)
  • High-performance compared to more complex CMS/blog platforms like Wordpress
    • Out of the box I get a Google Pagespeed score in the 90s for both mobile and desktop, vs. mid-60s for mobile with my old Wordpress site (and that’s after fine-tuning several performance-oriented plugins to improve my score)
  • Useful built-in features like “onebox” to display previews of links
  • Commenting and other user interaction is, of course, built right in, e.g. “Heart”/“Like”
  • Built-in spam protection
  • Built-in sharing functions so people can quickly share your content on Twitter, Facebook, etc.
  • Super excellent and easy to use quote system makes it easy for people to interact with your content, or for you to quote yourself in other posts
  • Many login/auth integrations available to make it as easy as possible for people to comment and participate
  • Permissions system makes it easy to have private areas for staging, or even to invite select people in to collaborate either in public (but with view-only permissions), or entirely in private
  • Uses Markdown and handles copy/paste better than e.g. Wordpress, which means I can more easily copy/move stuff from notes in programs like Obsidian, Roam, etc.
  • Built-in tagging system which can be used in combination with Categories (and sub-categories) for organization and content discovery
  • Very sophisticated built-in notification features allowing people to “follow” topics, or whole categories, and get notifications via email, or RSS only on what they’re interested in
  • Shows “backlinks” by default (i.e. what links to this topic from elsewhere in the system)
  • Mobile-friendly
  • Built-in “versioning”
  • Wiki mode for collaborative editing where desired
  • Integrated statistics as well as built-in Google Analytics connection if desired
  • User-selectable theme option can allow for totally different ways of navigating the garden
    • For example if you want to allow people to browser either as a set of thumbnails (as my garden is configured) but also switch to a simple list view, you can do so by adjusting Theme Components on a per-theme basis then allow people to switch themes from “Thumbnail View” to “List View”
    • Or of course, more simply, you can easily provide a dark/light view for people
  • Poll functions

The (relatively few) Downsides

Hosting Requirements

To my mind one of the only major downsides of Discourse as a digital gardening platform are the semi-complex requirements of its hosting (or at least unfamiliar if you’re used to Wordpress and other LAMP apps), and simple fact that it has a lot of functionality you’ll never use due to its original conversational purpose. Fortunately you can largely ignore the latter, at least once you have set things up in a gardening-oriented way, and despite its complexity and capability, it is a fairly well performing system when hosted on appropriate hardware, so it doesn’t suffer from its complex nature. I think the one big thing that would help facilitate more people trying it out for this purpose is a more preconfigured, “turnkey” setup oriented toward this use. If that’s something I can make happen at some point, I would love to do so.

In the meantime I highly recommend using an existing Discourse host, and the most affordable one at present (the one I use) is: https://www.communiteq.com/ Their prices are reasonable (though high for a “blog”), you can be up and running in minutes, and their support is responsive and helpful.

Excessive Visibility of “Author Identity”

One of the things that becomes less important in a publishing space largely dominated by the works of one person is the identification of authorship, particularly with more visible markers like profile pictures, etc. Since Discourse is meant to be a multi-user platform it is quite the opposite, putting higher importance on quickly and easily identifying who wrote any particular piece of content (topic/reply) and giving you quick access to their profile to get more information about them. The practical result of this is that you end up seeing just a ton of my face as you browse through the categories and topics here. There are little thumbnails of me everywhere. It’s possible to change this, but not easy due to Discourse’s bias towards multi-user. Still it seems a fairly small price to pay.

Lack of WYSIWYG

This is a minor point for some, a major one for others, but the lack of WYSIWYG may be a sticking point for some. I used to be a pretty big fan of WYSIWYG, but as I’ve grown more accustomed to markdown I’ve started to see its virtues and feel fairly comfortable being able to quickly format my content using it. It does have limitations, and along with WYSIWYG often comes additional formatting functions like center or right alignment, etc. But for simplicity and portability markdown is hard to beat, and you do get most of the formatting options you probably need.

Drafts System Not So Good for Multiple In-Progress (New) Topics

It’s klunky to have multiple drafts of new posts in Discourse. The drafts system in general is a huge improvement over many other discussion systems, and for replies the existing functionality works much better. But for new posts you can generally only have one new topic in-progress in a given category at a time. You can of course just create new posts in a private area and then move them to public when you want them to be “published”. And in any case this kind of encourages really “working/learning in public” by publishing even things at a “draft” state, rather then letting them remain drafts for longer periods of time as I often used to in Wordpress.