Behavioral product strategist and gamification designer. Many pages are incomplete. These are ideas in motion, and I'm iterating as I go. These notes are patterns I've noticed and hypotheses to bet on.

Home

Building Community in Obsidian with Licat

Below is a chat I had via Discord with Licat, one of the co-founders of Obsidian, an excellent application that I use for editing all of the markdown files on this website. I'm working on developing a community for GuidedTrack, so this conversation was incredibly helpful.

I'm a behavioral product strategist. That means I like to think about design decisions with respect to how they influence user behavior.

For example, how does the medium of communication influence the frequency with which users interact? How can intentional decisions about a product's community influence user behavior? And in Obsidian, I've seen a lot of intentional decisions.

Huge round of appreciation for Licat for discussing the subject with me. Without further ado, here's the interview!

Robert Haisfield

What do you think makes the Obsidian community successful?

Licat

I'm sure you already know we have the Discord chat server and the Discourse forum - these two were intentionally chosen:

At the very early stage when we first announced the product in private beta, we started with the Discord server because of my past experience moderating a gaming community.

We intentionally chose Discord instead of any other medium because of two primary reasons:

  • The nature of chat makes things more casual, and less transactional (unlike email or forum)
  • Discord specifically was designed: intentionally designed for communities: community, so the casual tone and the entire onboarding, moderating: moderation, and server management experience is optimized for community engagement.

Given that I had good experience with Discord's server management side, we basically ran our entire private beta here.

The downside: Cons to Discord is that discussions often get lost, search was ok but the conversation style doesn't help when people are looking for information that's been said again and again.

Issues could be reported multiple times, feature requests repeat a lot (especially when we had the early group of Roam refugees right around when they had the data losses and the pricing announcement)

At some point, we needed a better place to keep track of these, and while some proposed GitHub Issues, we wanted somewhere that were basically "ours", where people felt like a community, especially for those who prefer transactional engagement and don't like chat.

So we opened the Discourse forum (also had experience from running Dynalist's Discourse forum).

Community wise, we (the two of us) are more focused on Discord, because it's faster paced, and discussions come and go.

Very quickly we noticed that users were helping each other out when we weren't around: user-to-user support, and we realized that it'd help us greatly with reducing the amount of support we had to do every day (which would have hindered development since we're only 2 devs)

So we identified a few who were actively helping others and started a moderators group.

As gratitude for their efforts helping with managing the community, we gave our moderators a private mods-only channel where we actively talk, our mods gets access to the more raw insider builds, they have a bigger weight than the average user in deciding what we do next.

Soon our mods each took interest in different parts of the community - some preferred engaging on the forum more, some preferred to stick with Discord.

In retrospect, I don't think we plan out anything in advance. Issues with the community were dealt whenever they arise, like spam, ads, negativity, etc. But I think the one thing we kept in mind from the start, was that the moderators we recruit will set the tone and vibe of the entire community.

Robert Haisfield

Sure, but it sounds like there is tacit knowledge from past experience doing it with Dynalist. An intuitive and adaptive approach that was able to respond to your community needs.

Licat

There was some of that for sure.

I would also attribute some of it to my previous gaming community experience.

Robert Haisfield

Why do you say that?

Licat

Mostly from observation, especially on Discord. The people at the top (server owners and moderators) steer the conversations whenever things derail.

And that vibe trickles down to other users, who helps enforce the vibe of the community.

Robert Haisfield

Or rather, how do they set the tone and vibe? What are the helpful moderator behaviors you've noticed?

Licat

It's a bit hard to explain in words haha. For me, it's more of an intuition to pick out the way someone phrase out their messages. In general, the way they talk, the words they chose, the tone of the sentence, it adds up.

A few pointers I can think of - Does someone admit their mistakes? Do they give other people the benefit of the doubt? Are they open minded about ideas and suggestions?

Robert Haisfield

So the way they interact with people is really important, because it's essentially people skills?

Licat

Pretty much, yes . That's a good word I hadn't thought of, it's very on point

Robert Haisfield

Can you elaborate on that then? How would you describe the interactions that moderators tend to have with users?

Licat

Hmm. Ideally, moderators participate as a regular community member most of the time. Their status (as marked by the color of their names) gives others a subconscious push to see them as role models for behaving in the community.

Naturally, moderators (us included) participate more in the discussions, so our messages will show up more often. Users will pick up the tone and vibe, and adjust theirs to fit in

Those who set themselves apart in a negative way usually gets less chance of a reply to their questions, or sometimes multiple users will stand up to help them adjust the tone.

More severe cases can get a warning from a moderator, but I think we've only had to do it 3-4 times so far.

Robert Haisfield

Do people up their participation when they become moderators?

Licat

Sometimes. We explicitly tell our moderators not to burn out from their roles, and only contribute when it works well within their schedules.

Robert Haisfield

How did you get the new community kickstarted? What were the decisions you made near the beginning?

Licat

That's an interesting question. We kickstarted the community thanks to the fact that when we first launched, our private alpha builds were distributed exclusively through Discord

Robert Haisfield

Okay so you distributed builds through Discord. That probably gave people a pretty centralizing reason to come back.

Licat

A lot of people joined our Discord in the early days just to get access to our builds before they were made public, and a fair amount of them stayed because the discussions here are great.

Yes, I think officially, it's best to have an official sanctioned space for our users.

Robert Haisfield

Can you elaborate on that?

Licat

I think having one centralized place where users know they have direct reach to the developers is what makes Obsidian stand out from the competition. At least, back then anyway.

From past product building experience, especially in the early days of the product, we wanted to have lots of direct feedback from our early alpha group

Eventually once the community grows big enough, it wasn't realistic for us to answer everyone's questions, but that's also where having such a community helps, since users were helping each other quite often.

But we still have this official central place where users can just come in and give feedback.

Robert Haisfield

How did you handle this transition, when did you realize that it was happening, and do you think you could have started offloading more of the response responsibilities to user-to-user support earlier than you did?

Licat

I think this happened naturally. As more and more users join, issues people had became more repetitive, so more people had solutions they could hand to newcomers

Our moderators built a few meta-posts on forums for frequent issues and use cases

The most desired features like block references had many views and comments on the forum, which helps us prioritize. Also many of the new feature suggestions start becoming too niche and specific to fit into the core product, so it was a lot of noise to us that our moderators help filter out.

And yeah the other strength of the community, once it reaches this stage, is that for the niche and specific suggestions we shouldn't tackle, our community members had ideas, alternatives, or workarounds they can propose. Some even build plugins to fulfill their needs

Robert Haisfield

Okay, so how did you handle the transition to extensibility?

Licat

Oh it was easy. That part was planned from day 1. Retrofitting a plugin system is hard, so from the start Obsidian was built with a plugin API in mind. Our internal functionality all use that API which we eventually stabilized to expose

We knew it was to be extensible via plugins before we even started writing code

Robert Haisfield

How would you describe the response from your community to the release of extensibility features (re css and plugins)?

Licat

People absolutely love it! In fact, it's quite rare to see someone share a screenshot of their Obsidian that uses our default theme, haha.

We've even observed learning groups and people teaching themselves and each other CSS for the first time, just so they can unleash their creativity.

Robert Haisfield

I'm really curious about your choice to centralize community plugins and CSS on the app vs allowing hubs for plugins and CSS to emerge organically. What drove the decision, what the pros and cons of each option were?

Licat

That allows non-technical users to discover plugins easily, and let plugin developers reach a bigger audience than if they were posting on some personal blog.

The only con is that we had to implement the channel (and it was a solid week of work, plus another 2 for polish)

The pros are:

  • Easier for non technical users to find and install plugins
  • Plugin devs get access to a big audience
  • Users see the efforts made by plugin devs, can thank them directly for their work
  • Users can share feedback within our community directly
  • Plugin devs inspire and help each other out - More trust for plugins being distributed through official channel
  • Easier for someone to spot malicious/misbehaving plugins, let us know, and we can blacklist the bad versions

Oh and don't forget - if we don't make one, then I'm sure someone will make one

Something like that happened to Sublime Text, where "package control" is actually a third party plugin that manages downloading and installing plugins

Robert Haisfield

What happened there? Was someone else filling in the gap and making it a negative outcome?

(As an aside, I totally agree re trust, Roam’s got a bit of a Wild West going on with Roam/JS right now and you have to trust/follow the individual developers. It’s really nice being able to find and add things easily from within Obsidian)

Licat

I remember you had to run a python script to install a plugin called "package control", which then adds a command that you trigger with the hotkey in which you type Install package: ...plugin name... to install any plugins from the community marketplace

I think that's just a poor experience from a user's perspective - and it also forfeits some control, which means the official party can't ensure the marketplace is styled consistently with the app, can't ensure quality from the plugin, has no control over things like ratings and reviews, promoting popular plugins, etc.

It's a good thing that a third party develops such a marketplace, definitely better than having none

Robert Haisfield

What sorts of plugins have people been making? What sorts haven’t they been making that you think could happen?

Licat

Plugin wise it's been kinda expected and unexpected at the same time - we expected people to go crazy, and they did, and that still surprises us.

Some of the plugins augment the capabilities of Obsidian in ways we anticipate - things we lack but didn't have time for, or prioritized. Other plugins are just out-of-this-world creative, or things we would have never thought of.

The advanced table plugin, or the daily notes plugin are good examples of augmentations that are appreciated by many.

The Youglish plugin "Use YouTube to improve your English pronunciation" (highlight a word and get YouTube videos on how the word is pronounced) is completely unexpected!

Robert Haisfield

How are you and Silver mentally dividing the role of community plug-in developers and your role as product builders?

Licat

It's been a hard one. Sometimes we feel like the plugin functionality should really have been core. But we're also concerned that the plugin author would feel robbed of their work/reputation. I think many of the plugin authors would be honored to have their plugin (or parts of it) merged into core.

At the moment, it's really just a race of popularity. Any functionality that's highly requested is likely going to make it into the app as core or as a plugin eventually.

We try to be somewhat informed of what people are working on to avoid duplicated work.

That's what so great about the plugin API. Anything we don't have time for, or got prioritized, would have been filled in when someone has a use case for it, or a serious pain point. People take optimizing their workflow into their hands.

And in turn it benefits others who'd save time using the plugins, and those users can provide feedback and gratitude.

Robert Haisfield

On another note, how did you handle the transition to include a new community home, the Discourse forum. How did you get that started?

Licat

That part was pretty natural too. We were using a Discord bot (carl) to help us organize feature requests (see the suggestions channel). That didn't scale well and the moment we opened the forums people cross posted many of the feature requests and issues there. It's just a much better system to organize those things than chat.

Robert Haisfield

So the suggestions channel just pointed people to the forum? But that didn't work?

Licat

We didn't, we just archived the channel. Any suggestion that was previously in there, that still mattered, were likely to be re-posted anyway

The suggestions in Discord were used like this: - To add a suggestion you use the command !suggest Your suggestion here. The bot would post your suggestion to the channel with an upvote and a downvote and others would vote for them. But since it's a linear chat, eventually things start to become buried and searching is cumbersome

Robert Haisfield

Got it. So what would you say are the different roles of the chat vs. the forum? What does user behavior look like in each community hub?

Licat

Chat is more casual, fast paced, topics come and go, it's like scrolling reddit

Forum is organized, transactional, and keeps more permanent records of bugs, features, and other discussions

They each serve their own purpose. Discord helps people find answers to their edge-case questions and quick question quickly.

Forum helps everyone keep track of bug reports and feature requests, helps us spot duplicates.

Quite some people are also on Discord just for their daily dose of social interactions. A lot of people share graphs, ideas, etc.

They each serve their own purpose. Discord helps people find answers to their edge-case questions and quick question quickly. Forum helps everyone keep track of bug reports and feature requests, helps us spot duplicates.

Robert Haisfield

Really nice touch with the bug report and feature archive by the way. You're using the forums like a more accessible GitHub Issues. Also shows your users the receipts that you listen to them.

Licat

Yes, you can think of it as proof of our accountability

It actually thrills us and our moderators when we archive bug reports and feature requests when they're implemented 😄

Robert Haisfield

I'm really curious about the sharing side of things. With graphs and ideas, as well as other forms of user generated content. The show-and-tell, as well as the speculation. I'm curious what you've done with the community or the product that you think enables, facilitates, or encourages user-generated content?

Licat

I haven't been really involved in that side of things, that was more the work of my partner Silver. But she did spot the opportunity and chased it down. Opened the right channels for them. We also had a show-and-tell category for our last product Dynalist's forum. That also worked quite well.

Encouraging sharing user content (if successful) leads to a snowball effect where users see how welcoming the community is with regard to content shared by other users, and therefore share their own. The product has also evolved to include things that encourage sharing, especially on the graph view side.

Robert Haisfield

Can you elaborate?

Licat

When people started posting their graphs, we seized the opportunity to create a channel to encourage people to share them.

Same when people started extensive discussions of their system, we opened the knowledge-management channel for that

Robert Haisfield

So you were mostly just paying attention to what users were already doing, and adjusting the community accordingly

What channels of communication do you think you can plan ahead for and start a product community with?

Licat

That's correct. I think we started out the Discord chat with just general for everyone's discussion, and everything else was added when sufficient interest was there. I don't know. I'm sure it's different for every product, perhaps for note taking apps it may be similar

Robert Haisfield

Maybe feature requests and bug reports as well?

Licat

Yeah those would be universal (on a forum)

Robert Haisfield

Can you elaborate on that?

Licat

I think feature requests and bug reports should be tracked appropriately

Robert Haisfield

What is appropriate tracking?

Licat

Feature requests and bug reports in chat format can easily get lost and repetitive

In the early days of our community without the forum, users don't have a central point to search for these, so they would just start talking about it

So when Roam was all the hype, we had a lot of repeated discussions about implementing block reference

When we opened the forum, it was easy for a user to search up (or send links to) a forum thread about that specific topic. Then they can read the previous discussions and see if they have anything new to add.

Forum discussions are often async, spanning hours to days between answers, and people are ok with that because the format lets you easily recap what the discussion was before

You can kind of think of it like Slack's threads. Except the whole thread is a root item that people can easily find and refer to, even months later

Robert Haisfield

In general, I'm curious to dig into the differences between mediums of communication. Discord, Forum, Slack… So Slack vs. Discord. For many people, no threading is a dealbreaker for Discord. How do you think about that?

Licat

It was certainly a bit of frustration, but just like we see product features, it's all just a means to an end

The features don't matter as much as the use case

The lack of threads was only a factor of friction for continued discussions of a topic that could be interrupted by other talk

and for those, I think our compromise to move it to forums may actually be a good thing

chat is to remain chat - fast paced, topics come and go. It helps people feel less serious, more casual.

Sometimes there'll be feature requests and bug reports here still. That's fine - anything I can fix/implement in 5-10 minutes I'll do it right away. If not we encourage people to file a proper report on the forum and most are happy to do that

The replies feature on Discord did come eventually and that helps a lot

Robert Haisfield

Replies are nice for tracking conversations, but they aren't great at reducing the visual information you need to filter via your own attention

Licat

I agree, replies only partially smooths the issue of alternate topics in the same channel

Previously the method was quotes which was much worse experience

But I think chat is just chat. It's just an online version of a room where people talk, and there's usually a topic that active members are participating in, which constantly shifts

if people needs to go on a tangent with a subset of the group privately, they can jump to a more appropriate channel, or otherwise head to the forums

or alternatively, the louder group drown out the other, just like in real life

if covid wasn't a thing at least

Robert Haisfield

So you're able to maintain both community hubs because they are separate enough in functionality that there's no question what the rules are for what goes where?

Licat

Yeah. I don't see many people confuse the purpose of the two medium as long as we define them well, and us and moderators stay consistent

Robert Haisfield

So, I'm noticing this trend of bottom up planning through small but well validated bets

With your bottom up approach to community and product development, are there any instances where you've found it appropriate to be top down?

Licat

can you explain a bit more what those two means, bottom up vs top down?*

Robert Haisfield

How I'm thinking about it in this context:

bottom up: You intuitively make decisions in response to feedback/needs/evidence you observe. Start small, piece things together reactively and synthetically.

top down: You go in with some theory about how things work and plan decisions ahead of time

Licat

I think you always start top down, then observe for discrepancies between your assumptions and reality. Then react to them.*: feedback loop

There's a lot of times where observing can reveal things we didn't know about or didn't think of before, or couldn't possibly have thought of Failure of imagination

But I think you always need a plan. For Obsidian, for example, we internally have roadmaps, task tracking, big ticket items, that were pre-planned.

You can kinda see our execution with some of that - the private alpha was planned, the beta release was planned, opening a Discord server, then a Discourse forum was planned

Product wise, some of the high value targets that we planned: plan from very early on were the pane system, the graph optimizations, css customizations, plugin ecosystem, Sync and Publish as our way to sustainability and profitability. Our pricing model: monetization was there from day 1 and it's working out pretty well.

We also had to plan around the delivery of our first baby that happened about 2 weeks after public launch of the product

Robert Haisfield

2 weeks after public launch? You and Silver have exemplified some of the most impressive product development / community involvement I've ever seen… and you have a baby? Incredible.

Licat

Thank you

Robert Haisfield

Thank you for taking the time to do this, and for building an amazing product!