[HN Gopher] Show HN: Linen - Open-source Slack for communities
       ___________________________________________________________________
        
       Show HN: Linen - Open-source Slack for communities
        
       Hi HN, My name is Kam. I'm the founder of Linen.dev. Linen
       communities is a Slack/Discord alternative that is Google-
       searchable and customer-support friendly. Today we are open-
       sourcing Linen and launching Linen communities. You can now create
       a community on Linen.dev without syncing it from Slack and Discord!
       I initially launched Linen as a tool to sync Slack and Discord
       conversations to a search engine-friendly website. As I talked to
       more community managers, I quickly realized that Slack and Discord
       communities don't scale well and that there needs to be a better
       tool, especially for open-source knowledge-based communities.
       Traditionally these communities have lived on forums that solved
       many of these problems. However, from talking to communities, I
       found most of them preferred chat because it feels more friendly
       and modern. We want to bring back a bunch of the advantages of
       forums while maintaining the look and feel of a chat-based
       community.  Slack and Discord are closed apps that are not
       indexable by the internet, so a lot of content gets lost.
       Traditional chat apps are not search engine friendly because most
       search engines have difficulty crawling JS-heavy sites. We built
       Linen to be search engine friendly, and our communities have over
       30,000 pages/threads indexed by google. Our communities that have
       synced their Slack and Discord conversations under their domain
       have additional 40,000 pages indexed. We accomplish this by
       conditionally server rendering pages based on whether or not the
       browser client is a crawler bot. This way, we can bring dynamic
       features and a real-time feel to Linen and support search engines.
       Most communities become a support channel, and managing this many
       conversations is not what these tools are designed for. I've seen
       community admins hack together their own syncs and internal devices
       to work to stay on top of the conversations. This is why we created
       a feed view, a single view for all the threads in all the channels
       you care about. We added an open and closed state to every thread
       so you can track them similarly to GitHub issues or a ticketing
       system. This way, you and your team won't miss messages and let
       them drop. We also allow you to filter conversations you are
       @mentioned as a way of assigning tickets. I think this is a good
       starting point, but there is a lot more we can improve on.  How
       chat is designed today is inherently interrupt-driven and disrupts
       your team's flow state. Most of the time, when I am @mentioning a
       team member, I actually don't need them to respond immediately. But
       I do want to make sure that they do eventually see it. This is why
       we want to redesign how the notification system works. We are
       repurposing @mentions to show up in your feed and your conversation
       sections and adding a !mention. A @mention will appear in your feed
       but doesn't send any push notifications, whereas a !mention will
       send a notification for when things need a real-time synchronous
       conversation. This lets you separate casual conversations from
       urgent conversations. When everything is urgent, nothing is.
       (credit: Incredibles) This, along with the feed, you can get a very
       forum-like experience to browse the conversations.  Linen is free
       with unlimited history for public communities under
       https://linen.dev/community domain. We monetize by offering a paid
       version based on communities that want to host Linen under their
       subdomain and get the SEO benefits without managing their own self-
       hosted instance.  We are a small team of 3, and this is the first
       iteration, so we apologize for any missing features or bugs. There
       are many things we want to improve in terms of UX. In the near
       term, we want to improve search and add more deep integrations,
       DMs, and private channels. We would appreciate any feedback, and if
       you are curious about what the experience looks like, you can join
       us here at Linen.dev/s/linen
        
       Author : cheeseblubber
       Score  : 136 points
       Date   : 2022-10-18 15:12 UTC (7 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | knubie wrote:
       | I really like the idea and motivation here. I've always preferred
       | forums over chat for the reasons you described. Hopefully this
       | gains traction.
        
       | BerislavLopac wrote:
       | One problem with choosing a collaboration platform slash
       | messaging app for a development team is that, once you got one
       | running, it is very difficult to test and switch to another.
       | 
       | I would, for one, love to see a good comparison of all the
       | contenders in one place - Slack, Linen, Mattermost, Zulip, Twist,
       | Element, Discord etc...
        
         | djbusby wrote:
         | I made a Poll
         | 
         | https://news.ycombinator.com/item?id=33253419
         | 
         | Maybe we can collect details there.
        
       | cheeseblubber wrote:
       | Our tech stack if anyone is curious: Tailwind, Nextjs, Prisma,
       | Elixir, Postgres
       | 
       | Also let me know if there are any questions that I can answer!
        
         | jsncbt wrote:
         | Second time I've seen Linen shared on here. Great to see the
         | evolution.
         | 
         | Do the three of you work on this fulltime?
        
         | freedomben wrote:
         | For those interested, the Elixir part is the "Push Service",
         | which is a simple Phoenix API: https://github.com/Linen-
         | dev/linen.dev/tree/2d0ac2727e17a72b...
        
       | suyash wrote:
       | Unless all my favorite communities move to this tool, I'm not
       | going to add yet another tool that will demand more time and
       | effort. A better tool would be that consolidates all communities
       | and chat in one place.
        
         | jacooper wrote:
         | https://matrix.org and its own bridges
        
       | yjftsjthsd-h wrote:
       | So how's this better than matrix on one of the major free home
       | servers? Better archives and exposure to search engines?
        
       | shrisukhani wrote:
       | This is awesome. So excited to see where you folks take Linen! :)
        
       | JonathonW wrote:
       | If I'm an organization choosing a chat platform, why would I want
       | to use Linen versus Mattermost, which is also self-hostable and
       | open-source, and much more mature? Or Matrix and Element (or any
       | other Matrix client)?
       | 
       | This space is getting pretty crowded, and I'm not sure why I'd
       | want to use Linen rather than one of the many alternatives.
        
         | openthc wrote:
         | We love Mattermost for our organization; it feels nicer to use
         | it over Slack/Discord because we're also FOSS. Our next
         | iteration is to be moving to a more protocol oriented method -
         | which means Matrix or ActivityPub even.
         | 
         | We don't care if our chat is search-indexed; it's mostly
         | internal; there are client channels, specific topic channels.
         | At least for our case being OUT OF SEARCH is better. However,
         | we do use the conversation as seeds for our help-docs, blog
         | post, etc, etc.
         | 
         | Perhaps Linen could be the winner by putting
         | Slack+Discord+Mattermost+Matrix+ActivityPub in to a better
         | search-index.
         | 
         | Anyone remember MARC? -- https://marc.info/
        
           | pmayrgundter wrote:
           | My team is an OSS project using Discord and have setup bots
           | to connect to Element/matrix to test bridging and moving if
           | it makes sense.
           | 
           | But I second this call.. the goals for Linen of searchability
           | and better UX are great. I'd be inclined to try it out if it
           | could replace Element for us, but yeah, would have to be
           | connected to Matrix. Orr, Element if you're listening, maybe
           | collaborate with Linen and/or copy their features around
           | search.
        
         | sneak wrote:
         | One reason you may not wish to use Mattermost is because they
         | embed spyware into the server that phones home without consent.
         | 
         | Additionally, their feature gap between their paid enterprise
         | proprietary version and their free software version is really
         | telling: they don't believe in free software as a philosophy
         | and are just using free software licenses as marketing bait.
        
           | lrvick wrote:
           | Source for said spyware? Was not aware of this.
        
         | cheeseblubber wrote:
         | Sure thing. Mattermost and most open source chat tools not
         | Google searchable. They can offer public communities but unless
         | they are rendering static version of the site it is really not
         | SEO friendly. They are very enterprise/security focused so if
         | you want something secure and private Mattermost is fantastic.
         | 
         | We started out making Slack and Discord Google searchable and
         | search engine friendly see: kotlin for example https://slack-
         | chats.kotlinlang.org/ they have around 50,000 pages indexed by
         | Google. We render a static version for Google while giving you
         | the real time experience of a chat app.
         | 
         | Secondly most large communities end up being a community
         | support channel. So for anyone with customer support experience
         | having your conversation in one place is really crucial as well
         | as some sort of open close state. I was also the author for
         | https://github.com/papercups-io/papercups which made me a bit
         | opinionated in terms of community/customer support
         | 
         | Finally most communities end up being too noisy and in part is
         | because it is designed for chat. I actually don't think there
         | is a great solution out there to manage conversations at a
         | large scale and we think we can innovate on the UX of it.
        
           | dizhn wrote:
           | What are your thoughts on Zulip? Their priorities and yours
           | seem to align. I see you have threads but they look more like
           | Discord threads rather than how Zulip does them.
        
             | cheeseblubber wrote:
             | I'm not an expert on Zulip by any means but I'm always a
             | fan of other open source projects.
             | 
             | Beyond what we have right now, we want to design Linen to
             | be a thread-first tool (hence the name). We wanted an
             | experience familiar to users of chat communities but
             | encourages thread usage natively. We want to do things like
             | letting you move messages between threads and threads
             | between channel. Which I think Zulip has that
             | functionality. We just haven't had the chance yet because
             | the scope is so big and we wanted to ship something quick
             | and get early feedback.
             | 
             | Would also love to hear about what you really enjoy about
             | Zulip.
        
               | ghostpepper wrote:
               | Threading is the killer feature of Zulip I think
        
               | dizhn wrote:
               | Yes and conversation histories can be published too.
        
       | tobase wrote:
       | Looks like the service that mxstbr and team built and sold to
       | GitHub.
        
       | stopachka wrote:
       | I long loved Facebook's Workplace, but I feel like it hasn't
       | gained adoption. I think something that mixes chat with support
       | for longer-form discussion would be great.
       | 
       | A potential bug. I signed up and went over to
       | https://www.linen.dev/s/linen/feed
       | 
       | I tried "closing" an item that showed up in my feed, but it
       | doesn't look like it did anything.
        
         | cheeseblubber wrote:
         | Ahh sorry about that our permission only let's admins close
         | threads right now but will fix that soon
        
       | asim wrote:
       | Kudos to you for taking a shot at this. You might get some
       | negative comments here but don't let it deter you. You're on to
       | something.
        
       | nikolasburk wrote:
       | This looks fantastic, congrats to the launch!
        
       | agentdrtran wrote:
       | This looks great and glad to see it's open source.
        
       | dijit wrote:
       | Really nice work, and it's very pretty... so I feel bad for
       | saying this..
       | 
       | Zulip has really won my heart. It's not perfect, but up-front
       | nature of the threads, the ease of integration and the minimal
       | but extremely useful built-in set of tools (like a clock that is
       | always the correct timezone for all people viewing it, simple
       | polls and the ability to spawn jitsi sessions)
       | 
       | I'm really hard pressed to even try anything else, I'm all-in on
       | Zulip.
        
         | wanderingmind wrote:
         | I havent used Zulip. Is Zulip searchable and indexable through
         | search-engine (at least Google?). If yes, I agree that Zulip is
         | a better fit as its a more mature product. If not, the use case
         | Linen is solving here is totally different.
        
           | nightpool wrote:
           | Yes, Zulip chats and histories can be published and indexed
           | as an opt-in feature.
        
       | mdaniel wrote:
       | _May I suggest you create an #issues or #feedback in Linen to
       | show off the capabilities as well as perhaps allowing the
       | feedback to live on your platform rather than in HN comments?_
       | 
       | The signin experience is wonky for me, and I think it may be part
       | of my secondary complaint that there doesn't appear to be any way
       | to manage my "identity" on the platform
       | 
       | I do see in the XHR that it has support for `displayName` and
       | `profileImageUrl` but there's no obvious way for _me_ to manage
       | those things. And, because it seems to be in the channel JSON
       | versus in the  /session response, it makes me wonder if (like
       | with Slack, barf!) I have to set them anew for every community I
       | join?
       | 
       | When I say "signin is wonky," I mean that after authenticating,
       | the "Join the conversation" button remains as a call to action no
       | matter how many times I click on it. And then if I click on the
       | Linen logo, it always says "Sign in" as if it has forgotten who I
       | am, but it clearly knows who I am because going back into the
       | https://www.linen.dev/s/linen/c/default carries a bunch of
       | authentication cookies and I can see myself in the XHRs
        
         | cheeseblubber wrote:
         | Good suggestion I've created
         | https://www.linen.dev/s/linen/c/feedback
         | 
         | We have displayName and profileImageUrl but haven't gotten
         | around to letting you set it yet. We built a Slack and Discord
         | sync first so we had these attributes. But I agree with you we
         | want to let you set a single account with profile images across
         | different communities.
        
       | drewbeck wrote:
       | Really glad to see the work to take these tools to the next
       | level. The feed view and the !mention are great tools, and have
       | long been needed!
        
       | lakomen wrote:
       | Pitty, I thought it was software that can be self hosted. I have
       | a few potential applications.
       | 
       | Is anyone aware of any open source high performance
       | chat/community solutions that can be self-hosted?
        
         | petemir wrote:
         | Matrix/Element? IRC? :D
        
         | e12e wrote:
         | See also: rocket.chat, and xmpp/jabber.
        
         | mdaniel wrote:
         | Are you sure it's _not_ self-hostable?
         | https://github.com/Linen-dev/linen.dev/blob/main/docs/nextjs...
         | seems to imply there's a local dev story. While I'm not
         | familiar with next.js in order to know how dependent is is upon
         | them, versus it's just "a handy place to run node apps," in my
         | mental model if there's a local story there's a local docker-
         | compose story
         | 
         | The AGPL part is a separate ball of wax entirely
        
         | password4321 wrote:
         | Zulip
         | https://hn.algolia.com/?query=zulip%20comments%3E0&sort=byDa...
        
           | lakomen wrote:
           | Thanks
        
         | bogdanu wrote:
         | Care to share those ideas?
        
           | lakomen wrote:
           | They are all very niche, I have the domains and in some cases
           | popular people to make them attract users, but I'd like to be
           | the first to fill those niches, sorry.
        
         | djbusby wrote:
         | Mattermost.
        
       | dang wrote:
       | Related:
       | 
       |  _From idea to paying customer_ -
       | https://news.ycombinator.com/item?id=32104669 - July 2022 (81
       | comments)
       | 
       |  _Linen - Make your Discord community Google-searchable_ -
       | https://news.ycombinator.com/item?id=31494908 - May 2022 (29
       | comments)
       | 
       |  _Show HN: Linen - Make your Slack community Google-searchable_ -
       | https://news.ycombinator.com/item?id=31168882 - April 2022 (57
       | comments)
        
       ___________________________________________________________________
       (page generated 2022-10-18 23:00 UTC)