Hi all,
As ever from me, this is long. Sorry about that, it's a habit. Here's
the TL;DR:
- What: move Google Groups -> Discourse
- Why: https://blog.discourse.org/category/use-cases/
- Can I try? - Scroll to the end for login details
So, as some of you know, I'm a big fan of the Discourse[1] forum
software - I use it for another community, and it's just lovely. I've
been testing it out recently with a view to using it for Foreman, and
I think it's time to explain my reasoning and ask for your thoughts.
What?
Firstly, the "what" - what do I want to do? Simply put, I want to
migrate from Google Groups to Discourse. That means locking the groups
from further emails and using Discourse for our "written" discussions.
Obviosuly there's data migration that needs to happen there, but we'll
get to that.
Before all the die-hard mailing list fans stop reading here - please
keep reading. Discourse has options to interact entirely by email.
Your workflow may not be broken
Why?
Why do I want this? The short version is "because anything is better
than Google Groups", but more seriously, I think Discourse is great.
The reasons are different for each of our mailing lists though, so let
me break it down:
foreman-users
When it comes to supporting our users, what matters is that they can
ask a question, get a reply, and feel confident in that reply. For
those who do the replying, they need to be highlight and in some way
rewarded for the work they do.
The problem with a mailing list is that neither of these things is
really achievable. If a user (new to our list, who knows no-one) gets
2 different replies, who is (s)he to trust? A forum can display user
levels, and badges, making the developer reply stand out from the
other new user's reply. A mailing list has nothing - and worse, the
Groups API is so bad that I barely know who our mailing list regulars
are (I have to webscrape it using a crawler …) so I can reach out to
them for help, questions etc.
Discourse also searches for likely similar topics while you're
typing yours. This should hopefully help users to find existing
support for their issue before they make duplicate posts
For hard-working supporters, Discourse provides automatic "trust
levels" (in additional to manually promoting admins and moderators).
These trust levels allow you to unlock extra powers as you participate
in the community, which helps to reward the people who do help out on
the boards. Gamifying? yes, but it works. It'll also help me know who
to speak to when there's some swag to send out …
To make this worse (for Groups) there is a confounding of data in the
users-list today - we also use it for plugin announcements, and events
& CFPs, and so on. This is because making a new mailing list would
have a much smaller membership, making it not suitable for purpose.
Yes, you can say "hey we created a new mailing list for X, sign up!"
but the reality is that people just don't. Discourse gives us the
flexibility to create new boards for things as-and-when we feel the
need to.
Discourse also supports plugins (its a rails app), so we can look at
things like templates for new support issues, and so on. It also has
bots which can be used to deal with some things (I have not
investigated the bots too much yet).
foreman-dev
In contrast to the -users list, which is primarily support and
notifications, dev is all about discussion. Here I think we'll see a
real benefit in a couple of areas.
Firstly, back when we discussed how to handle RFCs, one of the
criticisms of a mailing list was the lack of rich format support
(markdown, images, code snippets etc) - Discourse supports all of
that. Quality of discussions should improve, I hope.
Discourse also has "like" buttons which can be used in place of "+1"
emails, and hopefully would encourage some of the quiter voices in the
community to click the like button, even when they might not have
emailed a +1. There are also polling options, so taken together I
hope this will help us to resolve discussions better than we have
historically.
The ability to create dedicated boards for popular plugins is also
pretty nice, if we decide to go that way.
foreman-announce
This list has historically been very low traffic. On Discourse, the
most useful feature for this purpose is the "global banner". This
allows a single post to be show at the top of every page, a global
pin if you like. Cleverly though, individual users can dismiss it once
they've seen it - so it's not that intrusive. This would be excellent
for new releases, but also CFPs etc, and would free up the announce
board for more general things like plugin releases etc.
General notes
Discourse has a lot of other things going for it. Here's a few I
found:
- Great set of metrics and APIs which allow us to do all sorts of
interesting things that I simply cannot do with Google Groups - Much better search support Private messages may be useful (although
I can't really see a big use, but perhaps when people are offline on
IRC?) - Groups support (think, writing "hey @packagingteam is this going to
work?" in a post). People can self-select to join groups, or they
can be invite-only.
There's almost certainly more nice things I havent found yet.
You said email would work?
For those who want to continue doing everything in their inbox, that's
fine. Discourse has a number of flags for how to email you with topic
updates (very similar to how Redmine and Github do), and it can be
told to only email you if you haven't been on the site recently (in
the last 10mins).
You can also enable "mailing list mode" which is the nuclear option
that mails you every update - this is global however, so unless
you're signed up to all 3 lists already you may get more mail that you
used to. Watching invidual boards whould probably be better in that
situation.
Discourse can also ingest email. I have a mailforward set up so that
you can email to Discourse (on the backend its a POP3 mailbox that
Discourse checks every 10 mins). Each board will get a dedicated email
address (eg community+dev@theforeman.org) that you can email new
topics and replies to.
That said, you won't get all the other shinyness, but the UI will be
there for you if you decide you want it
What now?
The short version, then, is that I think moving from a closed,
limited, un-extendable mailing list to an open source, self-hosted
discussion platform gives us much greater flexibility in how to handle
things in the future.
To that end, I have set up community.theforeman.org[2] as a trial
server. I've imported all ~30,000 emails from our lists (I know,
right? It took 7 hours…) so you can see what it looks like. There's
probably a few quirks caused by the crawler, mostly in
foreman-announce, and some of the inline replies, so don't judge the
quality of Discourse by the quality of the importer (which is in turn
limited by the quality of Google Groups, so …). I have
been testing email replies, and things like in-line replies,
formatting etc. seem fine when processed natively. We can use the
"testing" category if others want to try this.
The site is currently private while we test, but if you've ever sent a
m
ail to the list, you have an account. For now I've "staged" all
accounts
so that we don't mass-spam people. I've unlocked the most
frequent
posters to dev-list. If that's you, just use your email
address that
you send to the list from as login, and select the Forgot
Password
option to get a reminder. If that's not you (i.e. you get no
email when
you click Reset Password) then contact me and I'll unstage
you.
This is a very unstyled out-of-the-box Discourse server - almost
everything is tweakable / themeable, but I didn't want to spend time on
it until I was sure it was worth it. Therefore, take visuals with some
salt, and focus on functionality.
Have a play and tell me what you think. If you want to see some other
Discourse setups try [3,4,5]. Then tell me if you'd be in favour of
moving to Discourse permanently. I have a follow-up email coming with
what I think will be common questions, and the answers to them.
[1] https://discourse.org/
[2] https://community.theforeman.org/
[3] https://meta.discourse.org/
[4] https://community.ubuntu.com/
[5] https://help.nextcloud.com/
Thanks, the-guy-who-wants-to-uproot-everything-just-now
Greg