bevy-website icon indicating copy to clipboard operation
bevy-website copied to clipboard

Archive Discord #help threads in a search-indexed fashion

Open alice-i-cecile opened this issue 3 years ago • 6 comments

Discord help threads are ephemeral, but remain extremely popular as a method to get help.

We could archive these threads in a search-indexed fashion using linen.dev or one of their competitors.

Possible Pros

  • makes common questions and answers discoverable via search engines
  • boosts Bevy's SEO rank by providing tons of valuable content that we can host

Possible Cons

  • mild violation of privacy: by default, names and content of #help will be posted online
  • help threads are generally quite casual; they often contain poorly formed questions and off-the-cuff answer. This would not be the "highly curated Q&A" of Stack Overflow
  • answers for old Bevy versions will be archived online, which may mislead users. This is particularly bad because our rate of breaking changes is extremely high
  • what happens if and when the service we're using to do this goes out of business, or starts charging a non-trivial fee?

Open Questions

  • ~~Github Discussions similarly do not seem to be indexed. Do we want a similar or integrated solution?~~ Edit: these are indexed fine.
  • do we want to censor names of users completely? This should be feasible, but reduces the credit granted
  • do we want to allow users to opt-out of having their name shared? Of having their
  • How exactly does Linen handle threads? Will they be able to support the new forum features?

alice-i-cecile avatar Jun 03 '22 15:06 alice-i-cecile

FYI, I've been in contact with one of the founders of linen.dev (Kam Leung) over email; they've been helpful, responsive and professional so far. I've sent them the link to this issue, in case they want to dive in directly.

alice-i-cecile avatar Jun 03 '22 15:06 alice-i-cecile

Kam here: How exactly does Linen handle threads?

  • At the moment we only pull threads but working on pulling non threaded messages. Here is a sample discord community that uses threads: https://community.supertokens.com/c/general/1 We're working on pulling non threaded messages in Linen this week and next.

Will they be able to support the new forum features?

  • This is something we have to look in to and we have to gauge base on some community feedback

answers for old Bevy versions will be archived online, which may mislead users. This is particularly bad because our rate of breaking changes is extremely high

  • I'm considering a github integration so we can look up the latest commit when the message was sent so the user has some context in terms of how out of date the message is. (Open to other suggestions this is a common problem with old stackoverflow questions)

cheeseblubber avatar Jun 03 '22 15:06 cheeseblubber

I'm considering a github integration so we can look up the latest commit when the message was sent so the user has some context in terms of how out of date the message is

This is a solid idea, but in our case you'd probably want to tie it to the latest release (e.g. for us on crates.io). The simplest way to do this IMO is to allow users to define a two column mini-database, with "latest release" vs "date" of the software. You could also use Github's tags system for this.

Tying to specific commits will be a bit confusing, since the commits in questions will be up to 3 months ahead of what's actually being used by users.

alice-i-cecile avatar Jun 03 '22 15:06 alice-i-cecile

Hi! I was linked to this issue from IvyLashes on Discord after getting in contact with them about AnswerOverflow and asked to share a breakdown of the pros / cons of AnswerOverflow vs the competition so I'll post those below

Pros:

  • Fully compliant with Discords' Terms Of Service, in their ToS it says you can't publicly disclose users data that you get from the API without their consent so AnswerOverflow has a system for getting user consent https://www.answeroverflow.com/faq

  • Supports marking the solution to questions

  • AnswerOverflow has a general search that covers all servers that use AnswerOverflow to index them

  • It's free to use, to expand on the pricing model, the plan is to keep base features free forever, anything that helps with indexing messages so marking as solution, indexing channels, etc. The paid elements would be in the form of premium statistics such as insights into the most helpful members of your community, popular questions, etc - equivalent to Discord Nitro where it's freemium

  • Support for all message types, both threaded and non threaded, along with planned forum support when any of my dev servers get access to them

  • Communities get their own server pages, here is an example page: https://www.answeroverflow.com/c/mudlet

    • This will be expanded upon to be able to link to social media, docs, websites, etc, along with being able to pin messages but for the moment I'm more focused on systems to drive user consents
  • Users can manage all of their indexed content on a per channel basis and also all edits / deleted are synced in near real time

Cons / Missing Features

  • Not server side rendered (yet). Server side rendering removes the reliance on search engines ability to render your page improving indexing ability. I'm doing a refresh of the frontend in about a month and when I do I'll be implementing server side rendering but for now this is not implemented

  • Communities don't have the option to redirect to their own domain, I don't plan on implementing this as a part of AnswerOverflow

  • Less developer focused, the intention of AnswerOverflow is to be more of a general search engine for content on Discord servers so I don't currently have planned support for things such as looking at last commit messages to determine the relevance of the content. My approach would be closer to an upvote/downvote system for answers to use that for content filtering however that is not implemented yet

  • Not all of your content is publicly displayed. Since AnswerOverflow tries to be fully compliant with Discords ToS to have no risk to me or the server owners it's a part of it doesn't publicly display messages from users who haven't consented. For those who haven't consented to having their messages be public, that content is still accessible on AnswerOverflow it just requires to be signed in and in the server as that's not breaking the ToS.

The goal for AnswerOverflow is to not only index the content of your server, but also provide tools to help improve the experience of asking questions in the setting of a chat room. If you'd like to try out any of the features of it, the server invite for it is linked in the FAQ as well

Along with that if there's any questions that I can answer or features that are requested, I'd be happy to work on those :)

RhysSullivan avatar Jul 28 '22 04:07 RhysSullivan

Another open source alternative (eventually): https://github.com/PostHog/squeak/issues/165

alice-i-cecile avatar Jul 28 '22 16:07 alice-i-cecile

I recently finished up a couple major updates to AnswerOverflow and I figured I'd share them here as they address a few of the cons I mentioned

The biggest changes are to the UI, it's now statically generated / server side rendered so search engines will be able to index it better

Along with this, I've improved viewing searching and viewing questions

Example of viewing a question that has been marked as solved, the root message and the solution message are highlighted image

Example of viewing search results: image

On the bot side, a largely requested feature was being able to manage how AnswerOverflow views your account directly from Discord so that's added now - users in your community are now able to disable indexing of their account, no sign in required, which should help with comfort of having it image

For a channel like the help channel, AnswerOverflow should work pretty well as it'd be able to automatically thread all of the messages and let people mark them as solved when they're finished

Also the features for improving help channels work without having to index your help channels, so if you want to setup AnswerOverflow without indexing your channels yet that's also an option - that'd allow you to get mark as solution up and running as if you turn on indexing later, it'll be able to know what the solutions to the indexed questions are

Example of using mark as solution in a non indexed channel image

Example of using mark as solution in an indexed channel image

Next up on my roadmap are:

  • Repeat question detection, at the start of a thread it will link to any messages in your Discord server that match the question that was sent

  • Community insights, you'll be able to know who is helping the most in your community - this will allow for you to do things such as assigning custom roles to people who have answered say >500 questions for example

If there's anything you've noticed that'd help with asking questions in the Bevy community that you'd like to see in a bot like AnswerOverflow please also let me know, I'd be happy to add those on to it

RhysSullivan avatar Aug 29 '22 02:08 RhysSullivan