[HN Gopher] Show HN: I'm working on a open-source, self-hosted a...
       ___________________________________________________________________
        
       Show HN: I'm working on a open-source, self-hosted alternative to
       Disqus
        
       Author : djyde
       Score  : 218 points
       Date   : 2021-04-20 17:56 UTC (5 hours ago)
        
 (HTM) web link (cusdis.com)
 (TXT) w3m dump (cusdis.com)
        
       | spamtarget wrote:
       | self hosting + open source. kudos, good man
        
       | O_H_E wrote:
       | Not to put you down, but I think you should differentiate
       | yourself well from Discourse
       | (https://github.com/discourse/discourse), as it is pretty popular
       | with the open source communities.
        
         | FraaJad wrote:
         | Disqus is "commenting as a service" for pages.
         | 
         | Discourse is a "forum". Not the same thing.
        
           | codinghorror wrote:
           | yes, this is true! We try to avoid the whole "comments on
           | pages" model as it has not been sustainable, except in rare
           | circumstances under heavy human moderation.
           | https://blog.codinghorror.com/please-read-the-comments/
        
         | djyde wrote:
         | Hi. Discourse is a discussion platform (forum), while Disqus
         | and Cusdis are comment widget that embed to existed website
         | (like embed in blogs). I think they are not the same.
        
           | CarVac wrote:
           | Discourse can be used to power embedded comment sections too.
        
           | codinghorror wrote:
           | correct!
        
             | O_H_E wrote:
             | Ayyy, we got the man himself.
        
           | Syonyk wrote:
           | Discourse is heavier as a forum, certainly, but it supports
           | embedding in sites as a comment section, and will generally
           | do useful things like "automatically create a new topic of
           | discussion from the post."
           | 
           | I agree that it's exceedingly heavy for comment only use (and
           | generally requires user accounts), but if you're trying to
           | build a community that also has blog posts, the two do
           | integrate very nicely.
        
       | FoohanFoo wrote:
       | Very interesting, I've been looking for this.
        
       | Tepix wrote:
       | When i click on "try it now", then click the browser's back
       | button when seeing "log in with github" I and up at
       | https://cusdis.com/dashboard and get a 500 error page.
        
       | Jiejeing wrote:
       | Other (older) projects trying to fill a similar need :
       | 
       | isso: https://github.com/posativ/isso
       | 
       | juvia: https://github.com/phusion/juvia
       | 
       | But cusdis looks great so far!
        
       | pwdisswordfish8 wrote:
       | I worry about the echo chambers people are subjecting themselves
       | to when something with applicability as general as a commenting
       | widget requires a GitHub account to sign in. That's narrowing it
       | down to a subset of a subset of one's audience.
        
       | ochronus wrote:
       | Nice! Congrats, looks amazing
        
       | hutch120 wrote:
       | I tried out Disqus about 3 years ago, and found the API
       | horrible... see SOF thread here. Might be worth doing a React
       | wrapper to make it easy to understand how to integrate with
       | frontend. https://stackoverflow.com/questions/48653016/does-the-
       | disqus...
        
       | pgt wrote:
       | Change the name.
        
         | j3th9n wrote:
         | You change your name.
        
       | elric wrote:
       | Cuss & diss Disqus. Loving the name.
       | 
       | Can I suggest you add something of an architecture
       | diagram/flowchart od the website? Just a little something that
       | illustrates what the frontend talks to, where the data is stored,
       | that sort of thing?
        
         | djyde wrote:
         | Thanks for you feedback! I will add a `how it works` in the
         | document later. But I'd like to answer your question here
         | first.
         | 
         | Since Cusdis was designed for self-hosted, the data should be
         | stored in your own server. The Docker image provides both
         | sqlite and pgsql options. Then the comment widget that embed in
         | your web page talks to this server through a http call, which
         | fetch all the approved comments and display them.
         | 
         | The "Try it now" is a demo server that I've hosted for the
         | people who want to just look around what is it look like, it's
         | not scalable and shouldn't be used in production yet. It run in
         | my vps on Digital Ocean, data is stored in this vps with a
         | pgsql instance.
        
       | heofizzy wrote:
       | I have been tinkering about the idea of building open source
       | disqus alternative for few months now. I guess I missed the train
       | already:D Do you have any plans to monetise this?
        
         | lrem wrote:
         | That's a train with a busy time table. Every software engineer
         | who ever wrote a comment on the web, got an idea how to make
         | our better at some point. And it isn't a problem with a high
         | barrier to entry.
         | 
         | The interesting, for me, part is the antispam. It is also silly
         | hard, for obvious reasons. A big part of why Disqus is hard to
         | replace is that they're doing a great job with it. Only once
         | you clear that bar, you can think of successful monetisation.
        
       | l3s2d wrote:
       | How does this compare to Commento?
       | 
       | https://commento.io/
       | 
       | https://gitlab.com/commento/commento
        
         | j3th9n wrote:
         | You tell us. How do you think it compares to Commento?
        
         | henrycrutcher wrote:
         | What is the pricing for the enterprise? It's hard to get
         | excited about IF usage < X then $99/yr ELSE undefined as a
         | pricing model.
        
         | dempseye wrote:
         | Commento doesn't work. I tried to integrate it with my site a
         | while ago. Didn't work. Got some server error. So I tried to
         | contact the guy behind it. He didn't respond.
         | 
         | It's dead, as far as I can tell.
        
           | StavrosK wrote:
           | Yep, same experience here, dead as a doornail.
        
       | zapt02 wrote:
       | Great use case for Svelte! How are you liking it so far?
        
         | gnrlst wrote:
         | Not OP, but after trying Svelte it's hard for me to go back to
         | anything else.
        
       | truth_ wrote:
       | How can I use it on the posts in my blog hosted at GitHub pages?
       | I use Jekyll to build my blog.
       | 
       | Do you have a tutorial for that?
        
       | setum wrote:
       | Cool! I would like to try this out in my blog, can this be
       | integrated with statically generated pages using jekyll?
        
       | dlcrc wrote:
       | My friend in SF is working on https://reactivecomments.com/
       | 
       | It's a drop-in comment service in the cloud based on Remark42
        
       | m00dy wrote:
       | Make it decentralised, it is the new black.
        
         | NicoJuicy wrote:
         | Comments need moderation. The blockchain/decentralization ain't
         | great for moderation... And not everything has to be
         | "discoverable" (= have a public database)
         | 
         | Unless you're fine with re-inventing known best-practices ofc.
        
           | viccuad wrote:
           | Being decentralized is orthogonal with moderation. You can
           | for example allow people to post to some rooms that represent
           | the blog posts threads, and keep yourself as admin and
           | moderator there.
           | 
           | See https://cactus.chat, which is on the Matrix network.
        
           | rapnie wrote:
           | Dunno about blockchain, but decentralized works great. Watch
           | "Decentralized Social Networks vs. the Trolls" on
           | (decentralized) PeerTube:
           | 
           | https://conf.tube/videos/watch/d8c8ed69-79f0-4987-bafe-84c01.
           | ..
        
           | agogdog wrote:
           | decentralization is totally fine for moderation, it works
           | fine in Mastodon for example, you can moderate out entire
           | instances
           | 
           | for a commenting system you could do something nearly
           | identical... each site is its own commenting instance, and
           | you can federate profiles. If a user accumulates bans or
           | flags across instances you could choose to add them to a
           | shared blocklist that other instances can opt-in/out of...
           | it's not too hard to imagine.
        
         | darkhorse13 wrote:
         | How would you make a comment system decentralized? Like where
         | would they be stored? Genuine question by the way, I'm not
         | familiar with decentralized computing.
        
           | toomuchtodo wrote:
           | IPFS
           | 
           | https://komento.host/
           | 
           | https://news.ycombinator.com/item?id=26840855
        
             | miohtama wrote:
             | IPFS is a cache, not persistent storage.
        
               | toomuchtodo wrote:
               | Pinned objects persist.
        
               | 7steps2much wrote:
               | Correct me if I am wrong, if I am the only person pinning
               | it, wouldn't that mean we are back to a single server?
               | 
               | Like, if I am the only one pinning (and storing) the
               | data, everyone downloads it from me correct? Why not just
               | use a regular storage at that point?
        
           | [deleted]
        
             | [deleted]
        
           | viccuad wrote:
           | The same way a chat system can be. See https://cactus.chat,
           | on the Matrix network, for example.
        
           | fiddlerwoaroof wrote:
           | Local storage: solves the spam issue and the issue of
           | annoying commenters.
           | 
           | https://github.com/tessalt/echo-chamber-js
        
           | grej wrote:
           | Presumably the comments would be sharded and encrypted. Then
           | each those chunks would have a hash generated for it, and
           | each chunk would be stored as transactions on a blockchain,
           | or more likely multiple blockchains for redundancy.
           | 
           | This is how the blockchain storage companies do it.
        
             | valdiorn wrote:
             | This sounds insanely complicated for data that could just
             | be stored in a SQLite database...
        
           | nonameiguess wrote:
           | Decentralizing Disqus is trivial. Just go back to each blog
           | has its own local comment system with commenter identities
           | disconnected from all other sites they comment on or even
           | anonymous. There's no reason you need a single global
           | identity and storage backend for all content sources that
           | support commenting.
           | 
           | It can even be otherwise identical to Disqus except self
           | hosted.
        
         | nulterm wrote:
         | Two implementations using the Fediverse:
         | 
         | https://cactus.chat/
         | https://news.ycombinator.com/item?id=26371813
         | 
         | https://carlschwan.eu/2020/12/29/adding-comments-to-your-sta...
         | https://news.ycombinator.com/item?id=25570268
        
           | MayeulC wrote:
           | Cactus isn't really the fediverse though: I consider (maybe
           | mistakenly) the so-called fediverse to be broadly
           | activitypub-based, while cactus leverages Matrix.
        
       | barbazoo wrote:
       | Disqus -> qusDis -> cusDis -> cusdis
       | 
       | I hope that's not too close to the original name
        
       | taltman1 wrote:
       | I'm late to the game, but I'm surprised that no one has mentioned
       | StaticMan yet:
       | 
       | https://github.com/eduardoboucas/staticman
       | 
       | Just uses Git(Hub|Lab) to triage and approve comments for your
       | static sites, like Jekyll.
        
       | pentagrama wrote:
       | I would suggest that always show on screen the label of the
       | input, is not a good practice put the label inside the input and
       | make it disappear when the person start typing.
       | 
       | Example:
       | https://miro.medium.com/max/700/1*tjzXjhViDt3ArR1zUkFiRw.png
       | 
       | From: https://uxdesign.cc/best-practices-for-form-design-
       | ff5de6ca8...
       | 
       | Hope can help.
        
         | baby wrote:
         | This is called a placeholder, and I don't think it's best
         | practice, it's a matter of taste.
        
           | knoebber wrote:
           | Labels are a best practice for accessibility. Placeholders
           | should be used as example input, if at all.
        
       | rendx wrote:
       | A somewhat related solution for comments is to piggyback on the
       | Mastodon ecosystem, which I really like:
       | https://carlschwan.eu/2020/12/29/adding-comments-to-your-sta...
        
         | villasv wrote:
         | Or hook up webmentions with something like https://brid.gy/
        
           | uneekname wrote:
           | See also https://webmention.io/
        
       | rapnie wrote:
       | Great! Read here why it is needed:
       | https://news.ycombinator.com/item?id=26033052
       | 
       | Disqus.. the dark commenting system.
        
         | shaunpersad wrote:
         | There are a lot of efforts to topple Disqus for precisely those
         | reasons. I released my Disqus competitor 2 years ago and its
         | userbase has continued to grow like clockwork every day. It may
         | seem like a saturated market on the low end, but there's a real
         | need for projects like these!
        
       | dariusj18 wrote:
       | Slightly OT but if I'm ever in need of a comprehensive list of
       | alternatives to services, I'm just going to post that I'm
       | building one. I just knew when I saw this post that the thread
       | would be full of preexisting projects.
        
       | tyingq wrote:
       | The edit box doesn't seem to indicate what sorts of markup, or _"
       | url looking thing is converted to link"_, etc, is available.
       | Might be good to have a little help box to explain what's
       | allowed/supported, even if that's just text.
       | 
       | Edit: I now see the "support markdown" commit. You might want a
       | "preview" button so people can see what they have. At the moment
       | I see only a "Post Comment" button.
       | 
       | Also, does it understand the concept of canonical urls so that
       | pages that are the same one, but with different urls, share the
       | same comments? I searched the repo for "canonical" and didn't see
       | anything.
        
       | mey wrote:
       | Coral is poorly advertised outside it's ecosystem, but should be
       | considered. https://github.com/coralproject/talk
       | 
       | See https://docs.coralproject.net/coral/v5/integrating/cms/ to
       | get an idea of it's use.
        
         | wyattjoh wrote:
         | Coral is definitely more focused on larger communities than it
         | is for smaller sites. Mainly because of the multi-tenant,
         | multi-site, and moderation features that allow it to be used
         | for larger organizations!
         | 
         | (We're also hiring to work on this open source project!)
        
         | [deleted]
        
       | jedberg wrote:
       | The main advantage to Disqus (and other hosted solutions) is that
       | their spam protection applies across all comment sections. You'll
       | never get that with an open source solution.
        
         | j3th9n wrote:
         | I can imagine implementing reCAPTCHA can prevent a lot of spam.
        
           | jedberg wrote:
           | Sadly not anymore. There are click farms in third world
           | countries that will solve 10 captchas for a penny. Not to
           | mention how many people will just not leave a comment if
           | presented with a captcha.
        
             | j3th9n wrote:
             | I see, I was thinking about reCAPTCHA v3, working invisible
             | in the background.
        
         | mbirth wrote:
         | Also _one_ account where I can see all the comments I 've left
         | on the various sites with their replies. And if I feel like it,
         | I can easily remove old comments - even after my nickname
         | and/or email changed, I've deleted all my cookies and/or got a
         | whole new system. I just need to be able to log into my Disqus
         | account. And the site I'm commenting on doesn't know my email
         | address.
        
         | kingsuper20 wrote:
         | Could you (or anyone) give some insight into what spam
         | protection really entails?
         | 
         | Talk about a useful open source chunk of software.
        
           | anigbrowl wrote:
           | Disqus has passable spam and toxicity detection (the latter
           | via a third party) but many sites don't bother to make use of
           | it. As a result a great many disqus comment sections are
           | absolute cesspools of spam, bigotry, and threats of violence.
        
           | bdamm wrote:
           | Abuse is an arms race, so I'm not certain it can entirely be
           | "open source". Someone has to man the servers to adapt as the
           | assault develops. There can be tools that are open source,
           | but without a foundation that is running services, it's just
           | a bunch of dead end code.
        
             | wpietri wrote:
             | Absolutely. I agree the key is less code than rapidly
             | updated data. Source networks, browser headers, client
             | behavior, target links, content markers. Spammers may be
             | awful, but some of them aren't stupid. IF they discover
             | something isn't working, then they'll change up their
             | approach. And it can't be an open service, because you're
             | just helping the smart ones to hide better.
        
           | jedberg wrote:
           | The main thing is training a model. Every time you mark
           | something as spam or off topic, it trains a model so that it
           | can identify similar things in the future. You can train your
           | own model, but it will work better with a lot of data.
           | 
           | Open sourcing it would be hard, because you'd have to trust
           | everyone else to classify things correctly, or you'd have to
           | review every input yourself. A spammer could easily sneak in
           | a lot of false positives or false negatives to throw the
           | entire model off.
        
             | clankyclanker wrote:
             | Why is spam score always weighted as a single outcome and
             | never as a population-based result? I mean, you're
             | processing more data, I get it, but it feels like that
             | would be a model much more resilient to tampering, bad
             | actors, and just different social norms.
             | 
             | For example, if one set of users started rating a specific
             | subset of posts as spam, then those users could be bucketed
             | together into a "doesn't want to see message type A" group
             | while others, who minded other messages, would be bucketed
             | into a "No B-messages" group.
             | 
             | This would need to be applied selectively, as it could
             | easily result in an echo chamber for normal discourse, but
             | I would've given my left arm to have that sort of filtering
             | available in the game during my WoW days. Those city
             | spammers were unbearable!
             | 
             | I, of course, would have fallen into the "I don't care how
             | great a deal your Thunderfury, Blessed Blade of the
             | Windseeker, is, I'm just here to socialize" bucket.
        
         | [deleted]
        
       | MayeulC wrote:
       | Is there a mail-based solution out there?
       | 
       | Kind of like a public mailbox that you send comments to, and
       | articles get recompiled with the comments on a static blog.
       | 
       | Plus, it would be naturally threaded if your mailto: link
       | includes a thread ID.
        
         | sen wrote:
         | I was thinking about this recently and really like the idea.
         | You get the benefits of spam filtering, and it would work on
         | any device with no JS or anything ("Leave a comment"/"Reply"
         | button is just a mailto: link).
        
       | sytse wrote:
       | Very cool! I would love to switch away but a Disqus import would
       | be needed before we can do so.
        
         | djyde wrote:
         | Actually, in the "Settings" panel you can import data from
         | Disqus! You could try it.
        
       | aleksi wrote:
       | Another similar project: https://remark42.com/
       | https://github.com/umputun/remark42
        
       | Dort wrote:
       | This looks interesting.
       | 
       | I browse the WWW without JavaScript and this bricks many comment
       | systems. Are you planning to make a widget without reliance on
       | JavaScript?
        
         | cdelsolar wrote:
         | You can enable JavaScript in Chrome the following way:
         | 
         | 1) On your computer, open Chrome. 2) At the top right, click
         | More. Settings. 3) Click Privacy and security. Site settings.
         | 4) Click JavaScript. 5) Turn on Allowed (recommended).
         | 
         | Other browsers might have similar instructions.
        
           | codonaut wrote:
           | I think OP is aware of how to turn on JS, but prefers
           | browsing without.
        
             | halfdan wrote:
             | I think they are being sarcastic.
        
         | unixhero wrote:
         | Why do you browse the web without javascript? It is just a
         | programming language.
        
           | Dort wrote:
           | I browse with JavaScript disabled because A) I don't see any
           | ads and B) pages load fast on my weak devices (first gen.
           | iPad Air, ~2009 desktop).
           | 
           | I only turn on JavaScript to be able to use the website of my
           | bank.
        
       | yoaviram wrote:
       | Nice project!
       | 
       | I've been using RemarkBox for the last couple of months and like
       | it. It's privacy respecting, hosted, pay what you want.
       | 
       | https://www.remarkbox.com/
        
         | foxhop wrote:
         | Thanks for the shout out, I built Remarkbox and it's now "pay
         | what you can"
         | 
         | https://www.remarkbox.com/remarkbox-is-now-pay-what-you-can....
        
         | djyde wrote:
         | Thanks for sharing! Looks amazing.
        
       | toomanyducks wrote:
       | What's the license? I didn't see it on the repo.
        
         | djoldman wrote:
         | https://github.com/djyde/cusdis
         | 
         | says MIT.
        
         | benrmatthews wrote:
         | MIT - it says on the repo
        
       ___________________________________________________________________
       (page generated 2021-04-20 23:00 UTC)