Considerations for Fostering a Healthy & Active Online Community

The community for Obsidian.md (a markdown-based notetaking tool) has started to get recognition for being an unusually healthy online space. Since I’m one of the Obsidian moderators, and run the community newsletter, I’ve started to get folks from adjacent spaces reaching out to me for tips about creating a similarly healthy community.

I can’t claim responsibility for the Obsidian community — it was awesome for almost a year before I showed up — but I’ve been helping run online communities for a long time, from all the way back in my Neopets guild-running days, and I think I have a pretty decent handle on what works and what doesn’t. In the interests of sharing, and of hopefully helping to make the internet a better place, here are some of my thoughts on creating and maintaining healthy communities.

Tone & Expectations

I was chatting once with Dan at Readwise about how the main reason I like the new Reader app is that it supports highlighting Reddit comments. He was sort of surprised that I ever found anything on Reddit worth saving off to my personal knowledge base.

I stumble across the phrase “Reddit is a toxic cesspit” so often that it feels like a truism, yet I happily hang out on Reddit all the time and I rarely run into problems. Why is that? Because I mostly hang out in heavily-moderated communities with clear rules.

My absolute favorite subreddit is r/AskHistorians. It’s filled to the brim with awesome, accessible, verifiable content written by experts. They manage that by having famously strict moderation policy, and actually enforcing it. Here’s their explanation of the moderator role. Their rule #1 is that civility is required.

Here’s an excerpt I think is important:

We’re also conscious from experience on other subreddits where snarky takedowns are common that there’s a sort of vicious cycle whereby if people see what you or I might see as acceptable pushback they push the envelope further, and then the boundaries of acceptable behaviour expand. And repeat. The culture becomes toxic and the people with expertise end up not wanting to post, because they don’t get a good experience out of it but instead have to deal with snarky people being tiresome. As a result of wanting to avoid this happening, we err on the side of civility.

It’s not just Reddit where I see this kind of toxic culture evolve. I’ve been hanging out in programmer-adjacent spaces for over fifteen years and a depressing number of them have a vibe where “dumb questions” are punished and “just telling it like it is” is rewarded.

It’s the old “give an inch and they’ll take a mile” philosophy. Toxicity in a community starts small: it starts with microaggresions, with tiny bits of rudeness that become normalized because nobody stops the big fish from driving off the little fish. It starts with blowing off newbies who “were wasting someone’s time, they should have known to read the manual” and then grows into a vicious circle of grandstanding and subtle digs that make people afraid to ask questions.

That said, different people have different modes of communication. Formality isn’t required — and in some case might be actively detrimental to fostering a healthy community. The important thing is to assume good faith, and act in good faith, and set clear norms.

Questions

Questions are the lifeblood of any community, because questions are often what bring people to the community.

In the Obsidian Discord, someone once asked why the Obsidian Discord community is so much more active than the community surrounding another tool with much wider adoption, and the general consensus was complexity. I have been using WriteMonkey2 as my focused-writing app for the last ten years. I have never once sought out a community of fellow-users. Why? Because it’s brick stupid easy to use.

This doesn’t just apply to software, of course. People join writing communities because they have questions about the writing process and about how their own writing can improve. It’s a marketing truism that questions on Twitter get more engagement than statements. People also respond to tips and jokes. There’s more than one way to build a community — but most of the communities I’m in have questions at the core of their activity levels.

In this interview, Shida Li (aka Licat), one of the Obsidian developers, discusses the process of building community in Obsidian. The most important takeaway, I think, is that a community’s leaders set the tone.

By the way, here is an interview with Erica Xu (aka Silver), one of the Obsidian developers, where she answers “how did you go about starting the community, and how do you keep community members engaged today?” The short version of the answer is that they ran their early betas through Discord, so if you want access to new features, you need to get them through Discord — which means power users were motivated to check in periodically.

Rules

You don’t actually need a strict, extensive set of written rules in order to set expectations, though. The Ubergroup only has one “official” rule, and it’s “don’t be an asshole.” Obisidian only has three:

  • Please be nice to everyone.
  • Don’t spam or post the same question in multiple channels.
  • Don’t send other members unsolicited private messages.

What you do need is a consistent set of expectations.

I genuinely believe that good teachers don’t need a lot of “backup” from administration. It’s the opposite really; I leaned on my administrators way more in my first year than I have since.

As a new teacher, it took time to train myself to see all of the little things that, if not addressed, could snowball into bigger problems. If you tolerate a bit of whispering, it will turn into a roar — and require fairly drastic measures to correct. But if you gently and kindly and consistently ask whispering students to stop so that others can concentrate, a room will remain quiet and quiet work will become a habit. Noticing those whispers takes practice, though, because there’s often so much else happening in a classroom — for example, I was often busy helping another student. When I was new, it didn’t seem worth it to interrupt our focus to address a mere whisper. Now? I know better.

In an online community, it can be tempting to let little problems slide, especially because moderators are often volunteers. But I would no more kick a kid out of class for whispering a question to his friend than I would ban someone from an online community for being a bit harsh in a discussion. But in my experience people do respond pretty well to gentle correction like “well that’s a bit harsh” or “hey come on, we’re nice to newbies here.”

The more you handle those small encounters, the more people understand the expectations, start reminding each other of the expectations, and conform to the norms of the community. Those norms are often set by “high status” individuals, like creators and moderators, and the tone they take — friendly or abrupt, — becomes a pretty good indicator of what kinds of behaviors are rewarded in that community.

There are plenty of kids who clown around in one classroom, but would never dream of doing it in mine — not because they’re afraid of me, but because the social norms are different and they wouldn’t get the kind of reaction they get elsewhere.

Realtime vs. Forum

In the interview with Rob, Licat also discussed in that interview how chat is linear, and is excellent for community-building and problem-solving, but a forum of some kind to archive records is valuable.

This is something I’ve seen in the Ubergroup as well. We started out using Scribophile forums and eventually moved to Slack. We chose Slack instead of Discord because Slack has stronger sandboxing between instances, but kind of regret it now. But even though real-time chat is incredible for quick problem-solving, we still keep records & templates on the forum.

I’ve also seen ticketing systems and kanbans used for this sort of capture — it doesn’t have to be a forum. But it’s often useful to have a mechanism for “storing” institutional knowledge, whether it’s a weekly newsletter summarizing the discussion, or somebody spinning off thoughtful discussions onto topics that come up a lot into blog post summaries so regulars can just link to a readable consensus instead of relitigating the same topics over and over — which tends to get boring for regulars and can even drive people away.

Rewards

Periodically, people ask whether bounties would be viable for the Obsidian community, or if plugin developers should charge money to make the plugin’s upkeep more sustainable.

My take on this is that bounties for oft-requested plugins is probably not the best method for getting developers to pick up a project. Most projects cannot sustain the kind of financial incentivizing that is actually worth an experienced developer’s time. Even a $500 bounty like the one for Vim support in Codemirror 6 is nowhere near what a developer’s time is worth for the amount of time it would probably take someone to program that fix.

I think there is a place for paid plugins — Readwise Official is basically a paid plugin, and I think it’s a great service — but it is, honestly, pretty narrow. Here’s why:

Motivations

In my experience there are three main reasons that programmers code. The first is money — people who hate computers with all of their hearts and would rather be trail guides, but recognize that computer skills are in demand. Making plugins for a tool like Obsidian is an extremely poor use of their time — they’re better off getting a job for a big company and putting in their 9-5 in a six figure salary. The exception is college kids who plan to go off and get one of those 9-5 jobs and figure that building an Obsidian plugin is a good resume builder in the meantime, if they’re already using Obsidian for their programming notes.

The second motivating factor is sheer irritation at a pain point in their process. Entire Linux distributions exist because somebody got annoyed at a different distro and built their perfect one, then shrugged and tossed it out to the world for others to use. One of my favorite plugins for Obsidian is a button to launch your Obsidian vault in VS Code. You would have to work hard to convince me that this isn’t a classic case of xkcd automation, but the plugin store is filled with examples of a developer going “I had a minor annoyance so I fixed it.”

The third big reason people create and maintain programming projects is for the positive reaction from users. The thing about programmers is that they usually have plenty of money; most programming jobs pay pretty well, even at the “did a coding camp once” level. At a certain point, more money is nice but not really a priority. Happiness becomes a priority. Some people (like me!) derive happiness from helping other people, especially people they like.

There are entire plugins created and maintained by people who do not get paid and don’t even use their own plugins — that I expect to be maintained for far longer than they would be if they were paid, because those people have become friends with their users. They care about their users, and user gratitude means more than “more money” could, because user gratitude is easier to deal with than customer expectations. There really does come a point where more money does not mean more happiness.

Real Value

Let’s take myself as an example: the actual monetary value of the work I do for the Obsidian community is, on the open job market, unequivocally worth tens of thousands of dollars per year. If the Obsidian developers offered me a $60k a year — or even $100k a year — salary to keep doing this, I would turn them down. For one, as much as I enjoy hanging out in the Obsidian community, I like teaching more. There’s something special about a classroom and teenagers that can’t be replicated online. Plus, teaching a union job that comes with a pension. I get a ton of vacation time and “creative freedom.” There’s no reasonable amount of money that could get me to do any more here than I already do — and I do it for free. If I was getting paid, it would limit me. I would feel obligated to look out for the best interests of “the company” instead of being able to decide how much time I want to devote to things.

I hear a lot of plugin developers saying similar things. They like that this is a hobby, not a job. There are all kinds of reasons not turn turn hobbies into side hustles.

Some people worry that this means that the Obsidian plugin ecosystem isn’t viable long-term. To those people, I point to the fact that I have given up using every software I’ve ever had to pay for, and still use WriteMonkey2 regularly, which was free when I started using it ten years ago. The dev has been actively maintaining the WriteMonkey markdown app family on a donation basis since 2007.

LiquidStoryBinder, another app I used to like? It’s abandonware. You can buy it for $20, but it hasn’t been updated since 2011.

Besides, people quit jobs and stay committed to their hobbies all the time.

Education

And speaking of programming being a hobby — the Obsidian community has a lot of programmers in it who are not only incredibly giving with their programming time, but are willing to teach people how to code. One of the most important things Licat does as a community manager for Obsidian is to teach people. Plugin developers have reported that Licat’s code reviews are incredibly helpful for helping them learn. I’ve watched Obsidian moderators patiently teach interested community members how to collaborate using git, which is complicated — but that kind of investment pays dividends. Many of Obsidian’s 350+ plugins were created by people who had never coded before, or knew nothing about Typescript before they hopped into the #plugin-dev channel and started asking questions.

A neat thing about Obsidian is that it’s fun to tinker with, yes — but part of that fun, for people who always wanted to get better at coding but never knew how, is the encouragement and aid the community provides. That started at the top, with the developers themselves patiently helping people figure out how to tweak the program.

Implications

It would be really hard for someone to make a living by breaking into the Obsidian plugin space, I think. It’s tricky even in the Roam community, although courseware and teaching and educational content is apparently pretty viable as a full-time gig. One of the complicating factors is that any simple plugin created by someone trying to make money runs the risk of being sherlocked by other developers who don’t want to pay and don’t mind sharing their code. Complex plugins are mostly made by people with the skills to make significant amounts of money elsewhere (or at least, as is the case with Readwise, thru interoperability with additional tools). The remaining opportunities for “profit” are mostly situations where some cost is necessary, for example things that involve expensive APIs or server costs.

This isn’t to say that the Obsidian community isn’t incredibly generous. It is — I know of multiple people (including myself) who have sponsored other members of the community to paid tier licenses, bought each other coffees, rallied ’round to support developers, paid for people’s time, etc. I’m just trying to say that Obsidian mostly runs off of an  informal economy. The currency? Helping each other, being nice to each other, and contributing to the community — in whatever way makes the most sense for the individual.

Some people are great at coding. Others are good teachers, eloquent bloggers, or video makers. Many people have knowledge to share; about the history of the internet, about productivity software, about important news in industries of interest. Most people have something of worth to contribute to a community.

It falls to community leaders to recognize that, draw it out, and reward it.

Eleanor

Eleanor teaches Ancient Civilizations and spends the bits of time left over writing stories that bring history -- and magic -- to life. She enjoys rock climbing, bullet journaling, & gardening focused on plants you can actually eat.

You may also like...

1 Response

  1. citc says:

    Nice people in the real world, are able to replicate such behaviour elsewhere

Let me know what you think!