Hacker News new | past | comments | ask | show | jobs | submit login
[dupe] Commento: Open-Source Disqus Alternative (256kilobytes.com)
313 points by August-Garcia on March 20, 2019 | hide | past | favorite | 111 comments



https://news.ycombinator.com/item?id=19210697

This is the second time this account has submitted an article about a project that had major attention on HN a short time earlier. If this is with the idea of promoting your blog here, that is not the way. What we want is interesting content that hasn't been seen recently or (better still) ever.


To be fair, the person who posted this instance is not the author of the library/old article you linked. I was wondering why this suddenly disappeared from the front page. I guess it's possible they are doubling dipping with accounts? If not, they can't really help if someone else liked it and shared again.

Anywho... looks fantastic, I'm certainly interested in trying this out! Speaks to the interest this project is gaining that it rose to the top twice! As someone who missed the post a few weeks ago, I am very happy to have caught this one.


Submissions can count as dupes when they cover the same story. The story here is substantially the same as 19210697, and the pattern I was trying to pointing out is visible at https://news.ycombinator.com/submitted?id=August-Garcia. (It has nothing to do with the creators of this project or the other one, but yes there has been more than one form of double dipping.)

I agree that it is a cool project! Marking this post a dupe isn't to deny that. It's just that front page real estate is the scarcest resource on HN. More explanation here: https://news.ycombinator.com/item?id=19103247.

Not seeing all the cool things that show up on HN is a problem all of us have. One thing we made to try to mitigate this is https://news.ycombinator.com/front, which you can get to by clicking 'past' in the top bar.


Okay, I see what you're saying. Yeah, your updated response is more clear. I was confused before, but you are actually addressing August-Garcia. For sure seems like they are trying to capitalize on popular posts, and driving traffic to 256k website is clearly the goal. I'm definitely not a fan of this behavior & have ranted about similar activities in the past... lol

Also, props to the 'past' feature. Great idea! I'm a big fan. Thanks for all the hard work!


You're welcome, and thanks for the kind words.


I originally posted this as Show HN, but for what it's worth, I'm not involved in 256kilobytes.com in any way nor do I know this article's author.


No problem, that's clear. My comment was addressed to the submitter. Your original submission and your comments in this thread are 100% fine.


Cheers! :)


Lol it's so surreal seeing your project when you're randomly browsing the frontpage. Anyway, creator here, AMA!

>adtac has succeeded in reducing download to just 11 kB and isn’t done yet

Someone raised an issue to support Brotli in Commento (which I wasn't aware of) [1] and I did a quick test; it'd decrease the JS+CSS payload even further to under 8-9 KB. Nearly all modern browsers support Brotli [2], so I'm really looking forward to this.

I now realise this could be a modern take on the famous C10K problem, just with a different meaning: developing web services with under 10 kilobytes of payload :)

[1] https://gitlab.com/commento/commento/issues/125

[2] https://en.wikipedia.org/wiki/Brotli#Browser_support


The brotli experience has been frustrating.

All modern browsers support it, so you'd think it would be an easy win. The top nginx search is an official looking Google project which is long abandoned and doesn't support current versions of the library. There's an official nginx module which is commercial, and then finally there's a supported fork that that sits on about page three of Google.

Shared hosts don't generally support it. AWS Cloudfront doesn't support it, along with several other CDNs. Big + to Cloudflare for proper support.

It reduced my bundle sizes measurably. We all hate bloat and want to reduce bundles, but there seems to be a community inertia around mass deployment.


Ah, that sucks. The hosted version uses Cloudfront as CDN for static assets, too bad they don't support it.

>official looking Google project which is long abandoned

Is [1] what you're talking about?

[1] https://godoc.org/github.com/google/brotli/go/cbrotli


The [1] I should have linked is here: https://github.com/google/ngx_brotli/issues/72



Ever looked into OpenResty?

Take a peek at https://github.com/sjnam/lua-resty-brotli.


Anyone know why brotli needs to be generated at the web server level? Just curious why/if it can't be done at the web app level.


Consider the instructions for the nginx fork:

https://github.com/eustas/ngx_brotli

The "filter" module operates totally within nginx, and behaves roughly how we're used to with gzip. The "static" module allows you compress files as part of your build and just serve them - but the server still needs to understand the relevant headers and how to deal with them.


Its generally used as a data transfer compression system. So the web server needs to compress the data before its sent to the browser. If you did it at the web app level (client/browser side), the data would already be transferred so there are no size savings.


Many web servers will serve file.ext.(gz|br) as a pre-compressed option. In order for brotli to beat gzip on size, you need more CPU time, so it's best if precompressed. This also means it's not really an option for dynamic content.


Is it easy to move from hosted Commento into self-hosted Commento, and vice-versa?


Not yet. You can export comments from Commento as a JSON, but you can't import from the same format. Sucks, I know, but I'll try to implement this soon.


Do you see any issues with scaling in this project? I'd be very interested to know what you chose as backend architecture and how you handle so many requests parallel to each other, as I've struggled to build a good multi-threaded express backend in the past, would be awesome to hear some other stories. Do you think your service can handle a massive surge, let's say a really big player would pick you up?

Edit: Also really surprised about your pricing strategy. What if somebody wants to surpass the 50k pageviews? Wouldn't it be better to at least give those another tier?


I've done some basic benchmarks and it has scaled pretty well. Mostly thanks to the excellent performance and scalability that comes from choosing Go and Postgres. IMO backend servers are where Go excels.

I'm planning on adding Redis support soon enough so that sudden spikes would have little impact on the database server (which is nearly always the bottleneck, unless you're compute-intensive, which isn't the case with Commento). So that if you suddenly get a few hundred thousand visitors, most API responses are cached and only a fraction will actually require disk access. Like reddit does, where it'll temporarily say there N comments, but when you open the page, there wouldn't be that many. A few seconds of inconsistency is a fine compromise in the comments world. Of course, Redis isn't going to magically make everything faster, so I'll have to be careful with where I introduce it. Optimise for the common case and all that.

I'm still in uni, and I've never actually worked on large-throughput, high-scalability stuff before, so all this has been a great learning experience for me. If you have any suggestions or war stories that might be relevant, I'm all ears!


I'm by no means an expert in web backend architecture, but what you have done seems pretty solid to me with my limited knowledge. We've been mostly working with Express, that's why I asked to hear some feedback about how others have done.

And also, very well done! Your software seems to work very fine, a lot of thought already went into scaling and general stability of the backend. And for me, as fullstack working for a design company, your website layout and design is pretty good. If you didn't have help with that, kudos to you, good work, especially for someone still in college :)

Edit: Website performs pretty good in a Lighthouse audit, apart from Accessibility features.


I am happy to help/pitch in for the Redis support. Let me know, if you would like to collaborate.


I'd love to get help with Redis. I don't know anything beyond the absolute basics, so it'd really be useful if someone with more experience give lend a hand! If you'd like to discuss, please add your input here: https://gitlab.com/commento/commento/issues/75


That's pretty cool. Last I checked on my own site Disqus downloaded 1.3 MBs of bunch of stuff, which I think is just ridiculous. After caching it's only 2 KBs but it still bothers me - what in the world it's downloading? main.js seems to be 1.2 MBs and the main culprit. EDIT: well that was the ungzipped size, 263 KBs gzipped the CSS was larger with 353 KBs. But however, it works and has a free-tier so I guess it'll do. Maybe one day I'll try this out, but for now I can't be bothered with self-hosting.


How does it take care of spam? I hope it's not via Akismet, as I've not found it to be good enough.


When did you start working on Commento?


Around Apr 2017. Released v1.0 (almost a full rewrite, but still in Go) in Jan 2018. Launched the hosted version in Feb 2019 after almost 6 months of private beta.


Cool! Did you consider the pay-per-use model instead of a fixed monthly subscription?


How is the hosted version doing?


It's doing alright. Pays for its server bill, so I'm happy about that :)


Just emailed you about an enterprise account. My biggest concern would be longevity. Our org is an institution decades old and can't have a startup sunsetting on us a year after implementation.


My experience with comments on my site has not been great. My general sense is that, beyond the occasional "thank you", which I appreciate but which is not very actionable, the best discourse happened by email anyway, and comments were mostly by people who wanted me to solve their problems for them.

I made my email address even more prominent and disabled comments on my site after realizing it would be a net improvement.


I just remembered an important detail but I can't edit my parent comment to update: The reason I disabled comments was that I got lots of spam, and it wasn't worth spending time removing the spam comments for the few useful ones I got.


It wouldn't be HN if there wasn't a comment pointing out why the whole project is useless. I for one appreciate there being a lightweight alternative to proprietary, locked-in, cloud based services like Disqus, even if I don't personally and currently need a comment field on my website.


Don’t forget that Disqus is also a major tracking service, not as prevalent as Facebook buttons but with more semi legitimate functionality so you lose more if you block it.


> It wouldn't be HN if there wasn't a comment pointing out why the whole project is useless.

It'd be great if you could point me to that comment, because I can't find it.


Strange comment? There wasn’t even mention of the project being useless.


If we're discussing semantics then you are correct, the literal word "useless" was never used, but it's obvious that the point of the comment is to state that there is -- in the end -- no need for this solution as more primitive solutions are already superior. This is a type of comment that is so common that it's a trope in itself, much more than the calling out of it is (as some here seems to argue).


It wouldn't be hacker news if there wasn't eventually a comment pointing out that there's always a comment pointing out <x>.

It's fascinating to see this happen on both HN and Reddit, quite often even before 'comment pointing out <x>' is even posted.

This phenomenon reminds me a bit of the annoying fallacy-fallacy, or how any discussion involving -isms (capitalism, socialism) cannot be had without either or both parties pre-emptively defending against being accused of, say, the no-true-scotsman fallacy.

I've been wondering if this is a 'new' thing, or if we've always been having these increasingly meta conversations, or if perhaps I'm just getting old and tired of it.


Or maybe it’s because of internet points? Do you also see it happen in real life?


In real life too.


Ha


On this note, what are some examples of comments providing considerable value?

I can think of: comments in torrent trackers, where comments sometimes provide useful information; and, if this even counts, forum sites, like Reddit or HN, where comments host discussions.


Like children commenters said, comments are very useful if there's a community around your site. For my personal blog, comments were mostly "thanks" and sometimes angry comments about how I didn't like the thing they liked, although these were rare.

There were sometimes helpful corrections, but those came largely through email anyway, and, since I update the articles when I receive a correction, the corrective comments instantly became obsolete.

I just remembered the biggest reason why I removed comments: Spam. The added value wasn't significant enough (due to the reasons above) to warrant spending the time I spent removing span comments. Make a popular post and you'll get a whole bunch of "What a great post! Check out my thing: <thing>". I didn't want to spend more time moderating so I just disabled comments.


I think comments provide value everywhere where there is a community. If you don't have a community around your website and only random strangers visit it, it won't offer considerable value. Although I cannot say that I have a community around my blog, I occasionally get useful comments with clarifying questions and additional information which helps me improve my content.


For blog-posts which contains technical how-to information, the comments often contain corrections or other additional information which may be relevant for later releases or other distros.

I’ve certainly found that useful more than once.


Yes, this is one example of useful comments. It's just that, for my site, those tended to be over email, which I generally respond to immediately, so it's equivalently useful.

Comment sections are especially good for sites which the author doesn't update, so you can read the correction in the comment.


Many blogs I frequent have highly interesting comments. For example on LanguageLog the comments are often more interesting than the articles.


At any blog that is not just made for marketing.


Shared blogs (those with multiple authors) and podcasts often have lively discussions in the comments. For example, http://www.econtalk.org/amy-tuteur-on-birth-natural-parentin...


Kudos! And nice to see you're using GitLab as well.

Not to get off topic but my theory is, something like this is one of the reason why Automattic's / WordPress' recent Gutenberg efforts were misguided.

That is, it's not only about the content (of the individual node sites / blogs) but (in a networked / graph world) also the importance of the connections between the nodes, as well as the participation of third-parties (i.e., those leaving comments).

Long to short, commenting and connecting could result in an (informal social) network (of sorts). With WP powering ~30% of the web, laying the ground work for such a graph could have been revolutionary. Content __and__ connections.

Instead, they went with Gutenberg (and imho missed a massive opportunity to move away from the dated silo-based content model).

p.s. If Commento can (easily) work with the current copy of static site generators, what would be worth mentioning somewhere in your marketing / feature / benefits copy.

Also, since Disqus is a pseudo social network, how would Commento work if the same instance were used across multiple sites / blogs? In such a situation, could Commento be used as a proxy-network among the sites that share a given instance?


Actually, it would be great if comments had ActivityPub integration. Then you could comment on articles from your Mastodon account.


I've summarized many ways to include comments on a static site in my blog post [1]. It's great to see how many alternatives are around.

[1] https://darekkay.com/blog/static-site-comments/


I see on Commento.io it explicitly mentions being able to import from Disqus comments, but the "Import from a different service" is behind a signup wall.

Rather than signing up for a service that may or may not work for my site, I'm curious, does it allow importing from existing native Drupal and/or WordPress commenting systems?

That's my biggest pain point right now. Exposing public login to my CMS is a security risk (see: plugins/modules with permission escalation bugs) and frankly a pain I don't want to manage anymore. Migrating old comments to a new system is preferable to keeping the legacy comments system (and user accounts) in place while maintaining a second system on top of it for new comments.


Importing from Wordpress isn't officially supported yet, but others have found workarounds. One person imported their Wordpress comments into Disqus and then imported that into Commento. While native support within Commento would be infinitely better, I thought I'd mention this for the time being. I'll consider this comment as a vote for native wordpress import support :)


Related (if the creator is still around): Is there a roadmap/timeline for SSO?


I plan on implementing SSO for the next release (v1.7.0), but I've been a bit busy with school work for the past week or so. Still about ~2 weeks away, by my estimate.


Oh wow, great.

I'm used to roadmaps and software planning cycles in months or years so "weeks" is probably before I could even get somebody to open an email to start thinking about this. :)



Commento is hosted on Gitlab now: https://gitlab.com/commento/commento The Github page is only a mirror.


Yes sorry about that, it took me few seconds to notice it and updat the link in my message


a much better link, thanks!


I'm actively bootstrapping an alternative to Disqus called Remarkbox (https://www.remarkbox.com).

It's a real struggle to get people to actually make the switch.


How this compares to Isso [1]?

[1](https://posativ.org/isso/)


> Even compared to other open source Disqus alternatives, such as Isso and Schnack, Commento is much faster and requires less download data and RAM.

If you click on the link, there is also a table comparing Commento, Isso and Schnack


I note that putting lines of text between ```...``` can be used to put them in a monospaced font.

This is useful when discussing programming, as one can include excerpts of code. To do this in Reddit, you have to prefix each line by 4 spaces, which is hard to do because the comment box doesn't use a monospaced font.

Maybe Commento could have an option of a monospaced font for the comment box?


Reddit supports ``` BTW. You are thinking of StackOverflow probably (which is very annoying). Extra bonus points to sites like Github for supporting ```language-name, e.g. ```js / ```ruby / etc.


StackOverflow finally added ```language fenced code blocks a few months ago.

https://meta.stackexchange.com/a/322000


You are a life saver! Now they just need to fix the reputation for new users but that's a lot more complex.


> You are thinking of StackOverflow probably (which is very annoying).

It's particularly annoying because it's a programming site.


It's a programming site, which means no one should be typing code in by hand. It's always got a typo or six.

Cut the code, then paste it, select it and use the {} icon on the StackOverflow editor to indent the entire block. No need to guess at four space indents.


It's just equivalent to `this` though, it doesn't do newlines or preserve spaces.


`this` is for inline code,

```

this

```

is for code blocks.

https://github.com/adam-p/markdown-here/wiki/Markdown-Cheats...


You were talking about reddit, and my reply is about reddit.


And mine is about Reddit too :) (which follows the markdown spec pretty well actually)


But haven't actually tried it, right?


I just prepend them in a text editor which is quick and easy.


There was some discussion about adding comments to beta.observable.hq a while back[0][1]. One of the offered solutions was to embed disqus into a notebook manually[2]. Could you do that with Commento as well?

[0] https://talk.observablehq.com/t/comments-on-notebooks/1662

[1] https://talk.observablehq.com/t/let-s-talk-about-observable-...

[2] https://observablehq.com/@bumbeishvili/comments-on-notebooks


Yep, looks doable. All you need to do is insert two tags: a <script> and a <div>. You can also disable auto loading and manually trigger loading comments (see `data-auto-init` in the docs [1]).

[1] https://docs.commento.io/configuration/frontend/


I've used a similar solution called TalkYard [1] which provides a interesting combination of commenting and forums, and has super-helpful support.

[1] https://www.talkyard.io/


Another kudos to the project, adtac!

A few days ago, I self-hosted Commento to slowly replace Disqus on my sites. It was pretty painless to get the release binaries working on a little $5 Digital Ocean droplet, and get SMTP + Google OAuth configured.

To keep my page loads sane when I used Disqus, I had to delay the Disqus scripts from loading until the user hit a "Load Comments" button. It's nice that Commento comes with that sort of functionality right out of the gate, along with the ability to pass in a CSS file to override the styling.


Very cool as an alternative... the link at the top though, I thought it was like 1997 all over again.

I'm glad to see alternatives... Though, I kind of miss when newsgroups and BBSes were more popular.


You have a "Your Price" option? Love it! https://commento.io/pricing


Honestly, Disqus has been so unhelpful with fixing issues (such as users not being able to post comments from iPhones) that this might be worth a look.




This should be upvoted more.



cool alternative


From:

https://gitlab.com/commento/commento

> ... half a second increase in page load time results in a 20% decrease in engagement and site traffic.

An intriguing stat. Wonder if the 20% figure is specific to new visitors, who have never seen the site before?


Instead of using another data silo, consider webmentions. Post a reply on your own blog with rel=“reply-to” and send a webmention notifying the author, who uses a plugin or webmention service to display replies.

It’s decentralized web comments. See indieweb.org for more information.


How does the spam filtering work? Is it just Akismet, or is there something else you do locally?


Cool project! I am also creating a similar product https://just-comments.com/ It's great to see so many alternatives to be created recently.


Suggested a feature on GH project. Would be cool to see an extension for this, similar to dissenter, that could inject related comments, particularly for websites that don't even have comments.


What are some competitors to Disqus re: hosted comments?

What are the challenges with implementing one?

Does Disqus store the comments against a url? What happens if you add some nonsensical GET parameters? Do the comments disappear?


Coral Talk commenting system is a good alternative: https://coralproject.net/talk/


I made a comment below about my negative experience with comments but forgot to mention an important detail: I took down my comments section because of spam.

I had found your solution back when I was researching comment systems, and it looked (and still does look) great! I especially like the clean UI and tree-style comments. However, the big issue for me is how it handles spam. What sort of tools are there to save me from spending time moderating comments?

Even something as simple as "initially hide comments that contain URLs" would go a long way towards removing lots of spam.


The demo page locks up for ~5 seconds before the comments appear. I wouldn't call this "lightweight".


500+ comments and 5k+ page loads in the last few hours, but it turns out the backend was still pretty fast. It was the JavaScript that dynamically generated the comments web page that added a couple of seconds of delay. Looks like I know where to look for performance improvements next :)


This has reminded me to enable it on my blog (temporary testing). Thanks @adtac for creating it!


Cool name!


Funny story behind that. I originally thought the name was Latin for "comments". Naming things is hard, so I figured I'd just take the easy way out and translate from a dead language. I realised it was Italian only months later lol. Google Translate failed me.


And Spanish & Portuguese more or less


This is great. Is disqus still in business?


dang. requires javascript.



Only I can't open this page?


Count yourself lucky. Hoorah! for any alternative to Disqus, of course, but OMG the layout of their WWW page is heinously awful example of what can happen when children are permitted to do CSS.


The actual site for the project is https://commento.io/.

But you're right, the site in the op is super ugly.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: