Below is a chat I had via Discord with Licat, one of the co-founders of ObsidianObsidian
See also on Scaling Synthesis for more
, an excellent application that I use for editing all of the markdown files on this website. I'm working on developing a community for GuidedTrackGuidedTrack
GuidedTrack is a simple low-code application that allows you to make surveys, experiments, web applications, online courses, signup forms, and more. Spark Wave built GuidedTrack so that it could build advanced studies and rapidly prototype, and is making the software available more broadly.
Alternative study platforms like Qualtrics and Typeform required so much clicking and dragging that they were tedious and took forever to build. Additionally, it was difficult to package the study itself ..., 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!