Live data from Hacker News

Linen.dev: A 500 kb Slack alternative

linen.dev

51–60 of 219 posts

Re: Linen.dev: A 500 kb Slack alternative

#51
post #37

Not enough discussion here of the parts under "Our Optimization Strategies", which was the most interesting to me. Assorted reactions: > We found that react-icons had an issue that lead to everything being imported. This meant that we were including every single react-icon in our package whether we need it or not. Kudos to the Linen team for proactively finding this - I have a feeling tons of projects blindly trust t…

> tree-shaking their dependencies

What tool did they use: Browserify, Webpack, Gulp, Rollup, Babel, Parcel, ESBuild, etc.

Re: Linen.dev: A 500 kb Slack alternative

#52
post #46
post #26

Earlier quoted context omitted.

It's everything you want in a threaded chat server except federation. Web client is responsive and has good shortcuts. Easy-ish to self-host, cheap to buy hosted. Configurable privacy. Integration with all sorts of stuff, including email. A little lacking in community moderation tools. Text-mode client works acceptably well over a low-ish bandwidth connection. IOS and Android clients. Open source.

> Easy-ish to self-host, cheap to buy hosted. And, perhaps most relevant to my complaint, they offer hosting for open source projects (unlike Mattermost which is ... like, "send us email and we'll think about it" or something). I would guess Mattermost would feel the most comfortabe to Slack users, since I admit that Zulip has a different mental model than Slack, but I believe it is much better for ongoing thread man…

I think Slack has realised there are shortcomings in their threading as I just noticed today in the iOS app that there is an option to re-join a threaded comment back to the main channel after it's been sent to a thread.

Re: Linen.dev: A 500 kb Slack alternative

#53
post #26
post #17

Earlier quoted context omitted.

Tell me more about Zulip?

It's everything you want in a threaded chat server except federation. Web client is responsive and has good shortcuts. Easy-ish to self-host, cheap to buy hosted. Configurable privacy. Integration with all sorts of stuff, including email. A little lacking in community moderation tools. Text-mode client works acceptably well over a low-ish bandwidth connection. IOS and Android clients. Open source.

It’s also a clean, large, modern, type hinted Django project which is useful for learning Django

Re: Linen.dev: A 500 kb Slack alternative

#54
post #34

How does this compare to Ripcord[0]? Granted there haven't been any new releases of Ripcord in a couple of years, it's super lightweight and mostly perfect for my uses. [0]: https://cancel.fm/ripcord/

> Ripcord is a desktop chat client for group-centric service

apples and oranges?

Also, I seem to recall there was some drama about if one used Ripcord against a Discord server, it resulted in your account getting banned

Re: Linen.dev: A 500 kb Slack alternative

#56
post #18

Not to take away from Linen, it seems great, but whenever I see new chat software I lament the fact that Zulip isn't more popular. It's super fast, and its threading model is amazing. Zulip is the only software I've found where you can catch up on weeks of conversation extremely quickly. It's fantastic. I never felt that I lost messages, unlike Slack, and it's very responsive, again unlike Slack.

The main problem with Zulip is that I always end up messaging in the wrong channel without noticing.

Re: Linen.dev: A 500 kb Slack alternative

#57
Ah yes, highlight.js. One innocent

  import hljs from 'highlight.js';
pulls in over a Megabyte of hundreds of programming language syntax definitions.

Do you really need Mathematica, "ISBL", and "GML" — or would a curated list of popular programming languages such as Python, Java, JavaScript, and HTML ("xml.js" ) be enough? This results in a massive reduction down to ~70 kilobytes.

Even better: load this reduced size of highlight.js only on demand, leveraging Webpack's "import(..) to webpack chunk" mechanism:

  const getHighlightJs = async function() {
    let result;
    if (window.hljs) {
      result = window.hljs;
    }
    else {
      result = (await import('highlight.js/lib/core')).default;
      
      const javascript = (await import('highlight.js/lib/languages/javascript')).default;
      result.registerLanguage('javascript', javascript);

      const xml = (await import('highlight.js/lib/languages/xml')).default;
      result.registerLanguage('xml', xml);
      // xml provides html/html5 highlighting
      
      window.hljs = result;
    }
    return result;
  };


  const lazyHighlightAll = async function() {
    let result = null;
    // see https://highlightjs.org/usage/
    // highlight.js's hljs.highlightAll() matches on 'pre > code'
    const hasHighlightableCode = document.querySelector('pre > code') ? true : false;
    if (hasHighlightableCode) {
      const hljs = await getHighlightJs();
      hljs.highlightAll();
      result = hljs;
    }
    return result;
  };

 
  document.addEventListener('DOMContentLoaded', function() {
    lazyHighlightAll();
  });

Re: Linen.dev: A 500 kb Slack alternative

#58
post #18

Not to take away from Linen, it seems great, but whenever I see new chat software I lament the fact that Zulip isn't more popular. It's super fast, and its threading model is amazing. Zulip is the only software I've found where you can catch up on weeks of conversation extremely quickly. It's fantastic. I never felt that I lost messages, unlike Slack, and it's very responsive, again unlike Slack.

The main problem with Zulip is that I always end up messaging in the wrong channel without noticing.

Hmm, really? How come? That never happened to me, I don't think.

Re: Linen.dev: A 500 kb Slack alternative

#60
post #37

Not enough discussion here of the parts under "Our Optimization Strategies", which was the most interesting to me. Assorted reactions: > We found that react-icons had an issue that lead to everything being imported. This meant that we were including every single react-icon in our package whether we need it or not. Kudos to the Linen team for proactively finding this - I have a feeling tons of projects blindly trust t…

> tree-shaking their dependencies What tool did they use: Browserify, Webpack, Gulp, Rollup, Babel, Parcel, ESBuild, etc.

It appears that they used Webpack, which I found interesting given other alternatives.
Post reply on HN