Hacker News new | past | comments | ask | show | jobs | submit login
Open-source self-hosted comments systems for static websites (lisakov.com)
241 points by nuker on Oct 4, 2020 | hide | past | favorite | 70 comments



Echochamber.js is missing from the list.

> All of the commenting, none of the comments.

> When a user submits a comment, echochamber.js will save the comment to the user's LocalStorage, so when they return to the page, they can be confident that their voice is being heard, and feel engaged with your very engaging content. It does not make any HTTP requests. Since LocalStorage is only local, you and your database need not be burdened with other people's opinions.

https://github.com/tessalt/echo-chamber-js


Is there a mode to not display my own comments, so I am not burdened by my own opinions either?


Install Shutup.css. Temporarily turn off when you want to vent your opinion, turn back on to not be burdened by them.


Twitch VODs used to have the ability to let user comments on old broadcasts in a similar way, adding your comments to the live chat replay.

And while it's technically pointless because only you see the extra messages, it was amusing to pretend being part of the live audience.

It's too bad they now removed this feature.


So basically you're just talking to yourself as there isn't a real conversation with others.


That's the point...


I think that similar approach would work extremely well on pre-moderated boards. So user won't even notice pre-moderation.


Doesn't work as I often read stuff both at work and at home, and sometimes when commuting.


or maybe it helps strike a work life balance.


Omg, this is amazing!


My experience running my own comment system is eventually you'll get spammed in bulk. Then, if you didn't make some kind of management UI you'll have to create one or write scripts/queries to try to repair the damage.

This is one of many reasons first switched to wordpress before going static and using disqus. I switched to wordpress because I got tired of having to add features to my blog software (whatever the must have feature of the day was, RSS, Atom, Trackback, etc etc etc..) and because I got spammed and had only written the code for posting comments, not for managing. Wordpress's anti-spam Akismet, failed for me though. Too much spam came through adding to my workload. So I switched to disqus.

At the time, and maybe this is still true, disqus would put the comments in your wordpress database so if you ever decided to quit disqus you still had the comments.

Then eventually I got tired of the extra work of wordpress itself (having to update monthly) and went static + disqus.

I get the entire point is you probably don't like disqus because you're being tracked and/or want a different UX etc, and you should do whatever you want. There is enjoyment making your own systems. I wanted to blog to share things though and maintaining a comment system was time not writing posts.


I usually modify HTML forms so that they won’t work and fix them with javascript. This gives me almost zero spam.

You can do this for WordPress, but you will need to change comments endpoint, since spam software knows where to make a request.


This is a very interesting idea. Even if spammers became aware of it, adding a time delay could further filter.


> I usually modify HTML forms so that they won’t work and fix them with javascript. This gives me almost zero spam.

Interesting. One would assume that most spammers use automated browsers with JavaScript enabled.


Most of the spammers target well known engines such as WordPress. If you use a static website with an external comment engine, most of them simply won't find your website.


Unless you're large and popular to warrant custom case, spam en-masse is almost always computer generated and certainly without JavaScript support, you can battle it easily.

Just add an input with value which is submitted when user has no javascript. Change that value via javascript and check for existance server-side.

This has been working well ever since comment spammers became a thing 15 or something years ago. It has not failed me since.


I have Webmentions[0] setup for my static site's blog posts, and I also use HyvorTalk[1] for its simplicity and export feature (I could but don't want to host comments myself due to cost vs. usage).

[0] https://webmention.io

[1] https://talk.hyvor.com


Clarification for readers: Webmentions are a W3C standard for comments/interactions between sites: https://www.w3.org/TR/webmention/

webmention.io is a specific open-source service you can use with your sites to implement receiving them.


Dokie Annotations is a cool example of the the W3C Web Annotation specifications.

Write and publish articles in a space you control including locally, offline and static hosting.

Save articles to your personal datastore and edit (supports Solid / Linked Data Platform).

Annotate, reply to and share articles.Let your readers choose where to store their annotations.

Get notifications when someone interacts with your article.

Embed live data, scripts, stats and multimedia. Great for tutorials and experimental results.

Add identifiers and semantic markup to any concept to put your prose in the Linked Open Data cloud.

Anyone can tweak, clone and remix your articles. Spread your ideas, facilitate knowledge access and reuse.

Let your readers choose a view that suits them. Design your own or use preset themes.

Open source and under ongoing development...dogfooding, feedback and contributions welcome.

https://dokie.li/

For a quick peak at what a dokie annotated page looks like: https://imgur.com/gallery/ffH01dh

I switch back and forth between Dokie and https://web.hypothes.is/about/ and hope these features become more widely used.


Linked Data Notifications are not mentioned here.

https://csarven.ca/linked-data-notifications#protocol

Example, with margin notes and comments at the bottom of the article:

https://csarven.ca/dokieli-rww

It's a W3C recommendation, and there are multiple implementations:

https://linkedresearch.org/ldn/tests/summary


I see people recommending commenting systems here, but have we stopped to consider whether we need comments at all?

My personal experience is that comments are usually content-thin, and not worth reading. I publish my email address prominently, and people who want to tell me something do take the time to email me, and I enjoy the more personal conversation over email as well.


This depends heavily on the website in question and how well the comments are moderated/curated. The Online Photographer [0] is my goto example of a blog where the comments are excellent (and a key part of the value gained from visiting the site). The trick in this case: every comment goes through a moderation queue before it's posted. Some then get featured as part of the article.

[0]: https://theonlinephotographer.typepad.com/the_online_photogr...


> have we stopped to consider whether we need comments at all?

You are literally commenting on HN, so it must depend on the community more than commenting system.


And that’s just it: on HN, rather than on the original article.


>My personal experience is that comments are usually content-thin, and not worth reading.

Note that you write this in a comment.


Was it not obvious that I was talking about sites that use hosted comment solutions, and thus don't have discussion as a core feature?


Discussion can be a core feature (core as in "important to the site") whether it's implemented as hosted comments or built into their web app.

There are blogs using Discqus that have excellent discussions...


I’ve thought about it as well.

I think for communities like HN, the real content actually is the comments-- or rephrased, HN uniquely stands out amongst other news aggregators because of its community. You could say the community sentiment should be reflected through the content submitted, but I just don’t believe that’s true.

However, I don’t think everything on earth needs comments. I honestly never understood the point of blog posts having comments, but I’ve never run a successful blog that anyone looks at either so maybe I don’t get it.


Agreed, and communities don't outsource their comments. It seems to me that things like Disqus aren't useful, since if you use a third party service for your comments, they're mostly an afterthought and could well be omitted.


Comments help fixing issues in a decentralized way, which is awesome. They also help develop stickiness, like HN (or addiction if you fall into dopamine addiction). Youtube would never be popular without the comments, which help criticize the video and get other viewpoints.

But it seems they aren’t valuable _enough_ that someone would develop a browser extension to comment on any webpage —or, since such extensions have been tried a lot actually, that people would actually use them.


Entire communities exist around blogs with comments. That's not something you can easily re-create with email.

So it depends on your use case.


Interesting.

I just use a GitHub issue for my post's comments, explained here: https://pknopf.com/post/2018-10-13-comments-for-static-sites...

I use GitHub's API to render the comments on my static site. Comments must be left on GitHub.


From the GitHub Page [1]:

> Comparison table for open-source self-hosted commenting servers.

data.yaml [2] holds the list of OSS alternatives to Disqus. A daily Cron job launches a Python script that extracts GitHub data for each project. DataTables.js [3] is used to render the data in the browser. The web page itself uses Isso [4] for comments.

[1] https://github.com/pozitron57/open-source-comments

[2] https://github.com/pozitron57/open-source-comments/blob/mast...

[3] https://github.com/DataTables/DataTables

[4] https://github.com/posativ/isso


https://utteranc.es/ "A lightweight comments widget built on GitHub issues. Use GitHub issues for blog comments, wiki pages and more!"


Visitor needs a GitHub account to comment? OK if all of your readers are programmers I guess...


Self-plug: I would appreciate comments, especially UI-related, about my under-development self-hosted commenting system, linked below. You can comment here on HN, which I will read, or right on the page, too! If you use #bug tag, it will go right into my "bug tracker" (bug.txt)

http://sm.chg.pw/73/79/73791fc2.html

admin/admin are the captcha-credentials


I've been toying around with building a super simple Hacker News-like comment system for my static site on top of Fauna... all I just want is something plug and play, and none of these do that. I'm also surprised no one's released a simple open source Fauna example yet (or at least it's not listed on this site).

Is there a reason for that / Is Fauna not production-ready?


> Hacker News-like comment system ... want ... plug and play

What does plug-and-play mean to you? What's complicated with the ones you've tried?

Actually Talkyard is a bit inspired by Hacker News & Reddit — here're some improvements over HN & Reddit: https://www.talkyard.io/-32/how-hacker-news-can-be-improved-... (I'm developing Talkyard).

You have a link to your Fauna site? I never heard about Fauna before.


https://fauna.com/ is a new database that makes it relatively quicker to build things like commenting systems.

I consider something like Disqus plug-and-play. But I think that I would really want is something built in Node that I can import, add configs, and hook into my front-end. FaunaDB comes close, but I would still need to build the comments and moderation UI etc. It would be nice if someone fleshed out a more full commenting example on top of Fauna, but I haven't come across that yet, so I guess I'll eventually need to do that.

My site is just a super simple site that runs on top of Vercel w/ Svelte/Sapper


Thanks for the Fauna link. Looks interesting, I started thinking about using it for some "backoffice" related things. Probably will wait a year or more though, to find out how Fauna evolves — 3 months ago: "$27M [funding] and New Leadership".

About using it for a commenting system: What comes to my mind, is that outgoing bandwidth is a little bit expensive: 0.1$ per GB. So, maybe Fauna is a good idea for one's own personal commenting system — and, not such a good idea for someone who builds a SaaS commenting system and wants to keep the costs down.

> something built in Node that I can import, add configs, and hook into my front-end

Maybe something like the below? But not for Gatsby, instead, for the framework you use? (What frameworks do you use / like, if I may ask?)

    import TalkyardCommentsIframe from '@debiki/gatsby-plugin-talkyard';

    // And where the comments shall appear:
    <TalkyardCommentsIframe />
https://www.gatsbyjs.com/plugins/@debiki/gatsby-plugin-talky...

> a more full commenting example on top of Fauna [...] I guess I'll eventually need to do that

Be warned, it's more work than what it seems to be :- ) at least more than what I thought it'd be


Wow looks really nice. Was looking for something like it or maybe build it my self but then with the matrix protocol and profiles. But still need to dig in to it, don't know if it would be possible with matrix.


Any thoughts about how to maybe integrate blog comments software like Talkyard (or any of the others) with Matrix?

I'm going to build Mattermost and Slack integrations — primarily to send notifications to chat channels, when something happens at Talkyard.

Maybe there could be a notification to a Matrix channel, once a new blog post reply appears. And in the distant future, maybe it'd make sense to moderate comments, and reply, via /slash commands in a Matrix client?

* * *

If actually storing blog comments — maybe even the blog post itself?, in Matrix somehow, then, I'm thinking it'd be good if the Matrix protocol & storage format, worked with relpies & nested replies. So there could be HackerNews like tree-style discussions

I wonder if it supports that already maybe

B.t.w. if you find time to dig into that, and if you want to & remember, feel free to message me once you know how you'd do, to build something based on Matrix,

I'd be interested in ... in the very distant future ... two-way-sync between a Matrix "database" and a Talkyard database


I've set the reply to you on Talkyard


*send


:Self-plug:


What I would prefer over a self-hosted commenting system, is a way to automatically publish on Hacker News my blog post, and to have the comments here, as the discussions are almost always more interesting here anyway.

I know that this does exist already, but what I would like too is to have the hacker news thread of comments shown on my website.

Does somebody know some way to do that ?


I mean you could just hook into the API and fetch the comments that way, seems like a simple enough solution


Curious, what spam solutions do people use?

Besides akismet I don't see a lot of comment/profile spam detection services out there.


I use Hyvor Talk (https://talk.hyvor.com/) for a Gatsby site. It supports markdown, custom color scheme, moderation, multiple languages and runs on almost any platform natively etc.

It had a free plan till last month or so. Now, pages with less 5000 views are free. For more viewed sites, some minimal price is charged.


New users get trial


When I use static sites for projects, one of the reasons that I'm doing it is to keep costs down. If I really wanted to have a comment system on a static website, I think what I'd create is a system in which I have a server for the first visitor, but then for every other concurrent visitor, I'd use a P2P WebRTC connection to send the comments over. Signalling servers are free, if you know where to find them. And I can use my own server as a TURN server if needed.

So the model really is: offload whatever you can to the user. Or just don't have comments :)

If the website wasn't static, then I'd simply just use a server.


> one usually wants a lightweight commenting server ... [A few] commenting engines listed on the page are provided by heavy applications

A small ambiguity: There's a difference between being light weight client side, in the browser — versus server side:

1) End users notice the client side in-the-browser performance & light-weighted-ness. Whilst 2) the one who notices app server light-ness is the static site owner, who can save some $ each month.

However the comparisons page doesn't clarify that it apparently has in mind application server light / heaviness (and not browser-side).


Are there no distributed, truly serverless, commenting systems? Something that runs over WebRTC or dat:// or something? I remember there was a thread about GUN.js and other distributed databases on HN and this might be one application for it.


It would be nice if this list would include libraries that has inline comments / annotations


You mean for annotating the text in the blog post itself? Say, highlighting a sentence, adding a comment, and then others can reply?


Yes


Ok. I think that'd be nice too — hmm I wonder if there is any commenting system that supports all of: annotations, inline comments & replies, and a discussion comments section.


dokieli was mentioned on here[1] that appears to do this. Their JS[2] is a 1.7MB payload though

[1] https://news.ycombinator.com/item?id=24676845

[2] https://dokie.li/scripts/dokieli.js


I‘ve been using commento on my own sites for a bit over a year now. I was initially pleased but development seems to have halted and many pull requests fixing basic features have gone ignored.

I would try something else today.


my experience switching from disqus -> commento: https://news.ycombinator.com/item?id=19555665


Why not put a mailo: link at the bottom of a post, with a subscribe message to a listserv for the blog? If you really want, you could also render threads into a comments area.


I run https://FastComments.com - a live and fast privacy focused commenting system.

But yeah, not completely open source yet.


Does anyone remember Haloscan comments? In the early days of blogging (2002-ish) we used it in blogging platforms that did not have built in comments.


going radically lightweight (no DB, no server code) sacrificing all automagic stuff and falling back to email+iframes at e.g. https://blog.mro.name/2009/08/nsdateformatter-http-header/


What about comment spam?


Why not just make a github repo with a list of these in markdown?

All this javascript and html fluff is not necessary.


I just wrote my own comment system. It does not take long


Can't we use twitter ? Just curious...


No, new users are often automatically blocked there


I used fb a few times due to ease...

<div class="fb-comments" data-href="http://yoursite.com/yourpage” data-width="100%" data-numposts="5" data-colorscheme="light" data-order-by="time"></div>




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

Search: