Hacker News new | past | comments | ask | show | jobs | submit login
Moving from Disqus to Schnack (webkid.io)
173 points by moklick on Dec 18, 2017 | hide | past | web | favorite | 113 comments

A general observation about online comments: when I read an article online and want to know what other people are saying about it, I have no easy & simple way to do so. If your blog has a comments section, that's great, but what about all the other platforms that people discuss things on? (Twitter and Reddit [and of course HN!] come to mind.)

I would love to see a comments system that provided insight into commentary occurring across the web. Is there a good reason why online discourse is still fragmented?

Discourse is fragmented because there are dozens of different communities that like to talk amongst themselves. I think that's fine. I don't always want to be talking on an internet megaphone and I definitely don't want to be listening to one all the time.

Yes, fragmentation is a feature. Otherwise you are re-inventing Facebook, and we aren’t even sure we want the one of those we have.

If the only idea you have for non-fragmented is Facebook, ok, but I can imagine many other things that are useful, far better than Facebook and nothing like it.

There's a standard for that called Webmention, but it's not widely used : https://indieweb.org/Webmention

You can see it in action on this page : https://aaronparecki.com/oauth-2-simplified/

And there's a beautiful little tool named Bridgy that can pull replies/mentions off Twitter and Facebook and turn them into Indieweb-able entities. It's all really quite great, but of course assumes the terrible, terrible inconvenience of running your own website.

Bridgy is only able to see the comments one's social media account, like one's Facebook account, gets notified about, right? If some to me complete strangers start talking on FB about a post I made, I won't get to know about that via Bridgy? But if some friends of mine, whose comments my FB connected Bridgy account gets notified about, start talking about the blog post, Bridgy detects that?

I tried to do this but I was told to stop by HN itself: https://comments.network/

Seriously thinking about giving it a spin, remove the parts that HN was not happy with and relaunch it.

what are the parts that HN was not happy with?

I cross post to medium from my blog. I figure if people want to comment, they can do it there. Here's an example of the original[0] and the copy[1].

[0]: https://www.ceriously.com/blog/post.php?id=2017-10-16-es6-mo...

[1]: https://medium.com/@styfle/22969cd360f0/

Medium allows you to import pretty easily and sets the canonical URL so Google (hopefully) won't get confused with duplicate content.

Didn't know Medium supported a canonical url to point somewhere else. Thanks for pointing that out. Unfortunately, I think a comment system is one of the things Medium does poorly (I actually like Medium a lot in terms of other aspects, unlike most of HN it seems). They seemed to try to re-use their regular post system too much for commenting and each comment is like its own post, making a threaded discussion almost impossible to be had or read.

Yeah, I have a love-hate relationship with Medium.

The fact that every comment is another "article" is bizarre. Also, comments have become increasingly hidden behind suggested articles and require a click to load.

But I like that you can highlight a word or sentence and comment on that. The clapping thing is kind of interesting because you can give more "internet points" to better articles.

The one thing that Medium is great at is getting an article into the eyes of the people who want to read it, which is something that my personal blog will not do.

Also, there is something nice about consistent look n' feel with the same font when reading blog posts, so someone who is used to medium might be more likely to click on a medium.com link than a ceriously.com link.

>The fact that every comment is another "article" is bizarre.

And yet right here on Hacker News, submissions and replies are both just "items" and the UX is fantastic. It's not so much about the way they are represented as the way they are presented.

Medium has the worst comment system I have ever used. Click a comment and go back? You lose your place. Try to navigate even a little bit and you get lost and have a hard time even finding the original article. Just completely and utterly unfortunate.

There used to be the Trackback system that would allow someone to write blog post and "ping" the blog post they wrote the response to. I am not sure what happened to that system.

It was massively abused by spammers.

>Is there a good reason why online discourse is still fragmented

Good reason? I don't know, probably only because no single platform has become ubiquitous. Of course, as soon as that happens we'll be seeing a lot of comments here about how it's terrible that online discourse is centralized and that people should abstain from using <platform>.

In thinking some more, I prefer to spend my time here as opposed to reddit because the level of discourse is just much higher. Can you imagine sifting through potentially _millions_ of comments, many of which are of youtube level quality? Maybe fragmentation is ok here.

It’s because no one wants to do the job of moderation.

Reddit uses moderators to police their subreddits basically for free . All of the founders have been admins which police the moderators or do the things that mods can’t do.

It’s not like this phenomena is new. Digg and Slashdot had similar problems . Newsgroups even before that with eternal September. Facebook , LinkedIn and Twitter use paid moderators (but have the pockets to do so) and they still are deluged with issues. Microsoft even has some class action lawsuit over people having PTSD after performing image moderation. 4Chan has had similar problems also.

We haven’t gotten even to advertisements that have conflict of interest. Even worse though is that if you have groups that your site allows in and your advertisers see it they will flee you really fast. Also, the fact that those same brands can just buy social network PR services for a fraction of the cost and all of the upside. Even better that they will be platform agnostic which means when reddit gets replaced they will still be there.

For me on Firefox on macOS that is just a couple of key strokes away:

  cmd-l cmd-c ctrl-a r <space> u r l : <enter> cmd-t cmd-v ctrl-a h n <enter>
I have set up `r` as keyword to search on Reddit and `hn` to search on Hacker News [1]. `url:` is the Reddit keyword to search in the url field of the items. (In Firefox, you can right click any search field and add a keyword bookmark for it.)

[1] https://hn.algolia.com

DDG (from the browser navbar) functions in much the same way.

!hn => hacker news

!se => stack exchange

!w => wikipedia

!r => reddit

(Not all of these are forums, natch.)

It often breaks with different query parameters for example on YouTube videos, but I just created a couple of bookmarklets.




There's a W3C Web standard that is supposed to address this (Annotations), but I don't think it has gotten much traction yet: https://web.hypothes.is/blog/annotation-is-now-a-web-standar...

Part of the problem is the walled garden affect of Facebook, is there a public API that provides you with links to public posts about a piece of content ? I doubt it, although Facebook uses this internally to show me random strangers blathering about various news stories. Twitter might be easier but still not sure if there is something that an API can query to find links to a certain article or piece. I remember back in blogging days there was a ping back functionality that was supposed to do something like this.

Usually if I find something interesting in the tech sphere I just find people commenting about it on Hacker News and it's a tight but broad enough community to get good discussion.

I had a go at building this general idea as a browser extension about 5 years ago, but abandoned it as writing browser extensions is a pretty fragmented, horrible experience. The general idea was take the current page URL, hit Reddit/HN various APIs and coalesce various posts (multiple for Reddit) and single HN instances (perhaps with and without hashes, "?new" and other reposting conventions).

Because the web has devolved into a bunch of walled gardens that try to sell their user bases to advertisers.

I think it's okay that the web has different communities on it. The web has grown in population at a staggering rate, if we had the same system we used to have of public boards that would be full to the brim and people would be seeking quieter spots anyway.

I don't like the idea of walled gardens for advertising at all mind you. But different communities, some of them private, makes total sense for such a large population.

No it hasn't. Those walled gardens still comprise a miniscule amount of the actual content on the web. In fact many are link aggregators and depend the existence of content beyond the walled garden to survive.

Nothing has devolved except the willingness of users to explore to find new content. But that's not because it no longer exists, but because for the most part new content is delivered to them.

> when I read an article online and want to know what other people are saying about it, I have no easy & simple way to do so

Surprised no one else has pointed this out, but that was one of the original problems that Disqus was trying to solve. E.g.:


I just add links to HN/reddit threads at the end of my posts. Simple and elegant solution.

So in order to use this, you need to host a new Node app and SQLite database on your server. Also, things like spam control are now back on you.

So why not just use a CMS or blog engine which supports traditional server-side comments? I suppose there is a case if you're hosting static HTML pages but still want them to be commentable, but how many people are doing that? I don't get the use case for this.

Because you like everything else about the static blog (static files are easily hosted and trivial to move to other hosts or CDNs, many devs like the integration with git, you like the workflow of doing everything locally until the push to publish, good hosting solutions that scale a lot are really cheap).

If something goes wrong with the server you host (suddenly tons of visitors, some failure), only your comments are down, not your entire site, assuming the static hosting is on other infrastructure (and even if not, it's easily moved again).

Maybe you used an external service before and want to get rid of it, like the example in the article, but do not want to completely change how your blog works for this.

Part of the motivation for using a static site (especially GitHub Pages) is to eliminate the time, energy and cost of doing DevOps.

Going full DevOps just for blog comments is not great ROI. If I couldn't use Disqus/FB Comments and was forced to self-host my own blog comments on my static blog, I'd just remove blog comments altogether.

Part of the motivation for running your own static blog engine (as opposed to Medium) is that you believe in a decentralized internet. I used to run my own Wordpress server for a decade before I gave up dealing with the security flaws and moved to a static blog.

Sure, I could’ve just live without comments, but that’s again forcing the discussion into other „centralized“ communities like Twitter or Facebook. So I threw in the time to create and set up Schnack.js to have the best of both worlds: a static no-hazzle website with self-hosted comments.

Also I grew up in a time where virtually everyone would have self-hosted comment systems on their static self-hosted websites. Only they used to be called guestbooks then. Working on Schnack really reminded me of that magic time.

I wanted to do something like that for my static blog (and contact form for my company site), and couldn’ Find the time, so thanks to you for making this !

I’ll give it a try during holidays.

I already have a static blog and like 8 non static apps on my server. If I were to add comments I'd rather host a comment server than convert my blog to something other than static files.

Sure, I can see why you'd make that choice (just as I know people who never would touch Disqus or FB comments).

Doesn't mean others wouldn't throw up a comment system somewhere, in the knowledge that the most important part of their site (the content) isn't affected if it doesn't keep up and they exactly do not need to invest the time and energy to "go full DevOps" for that.

If you want some dynamic comments why not just use hypothes.is, which is about as minimal as you can get?

It is trivial to make a static blog CDN-friendly, not so much CRM like Wordpress. It is doable, but the amount of efforts is non-trivial.

In addition it improves the site security. An XSS bug in commenting code in Wordpress can allow the attacker to become the administrator for the whole site. A similar bug in commenting engine only allows the attacker to damage the comments and temporary disfigure the site with straightforward recovery.

I feel the same. I wonder if a free heroku account and a docker image of the setup would work if you really wanted this? Seems like full on DevOps is not necessary for a very self-contained simple commenting app like this if you wanted to self host with minimal cost/effort.

For people who write their own CMSes (like myself), this is hella useful. I look forward to adding this to my blog once more features get added, although I'd probably switch the database to MongoDB.

Indeed. One of the reasons disqus and the like are popular is that they take care of hosting the comments.

And having user content on a separate domain isn't a bad idea from a security pov.

Nothing's stopping you from running a self-hosted solution on a different domain.

Sure, but then you have to run a self hosted solution on another domain. It's far easier if someone else is willing to do it for you at a low cost (or even free).

According to the article, this "free" service comes at the cost of their readers privacy, not being in control of your whole blog (comments) and increased loading time because of the size/requests needed.

Seems like this would easily run on the free tier of Heroku for a blog with modest traffic.

Another thread on the front page right now is talking about how it's very difficult to get views on your blogs now. And I've felt the same.

5-10 years ago I used to get 2-3 digit views on my posts. And I used to use Wordpress / Blogger and the like.

Then, when it became fashionable, I spent a lot of time (at least 20-30 hrs, and mind you this was not the geeky kind of work, it was like refactoring code using just grep) converting the blog to one of those static generators, and I suspect that I spent more time migrating all posts than the TOTAL TIME all readers combined have spent on my blog since then.

Now I am almost regretting migrating and definitely have no interest whatsoever in spending any more time doing DevOps for the blog.

> definitely have no interest whatsoever in spending any more time doing DevOps for the blog.

Honestly that's why I use a managed blogging host. I have better things to do with my time, such as writing content.

Yeah I realized that for the level of readership my blog has, even the time I put in writing a post is probably not worth it, let alone writing template files and figuring out the idiosyncrasies of the templating tool of the day (which almost always has negligible documentation)

You gotta start somewhere. Write quality content and the viewers will hopefully come.

For some reason, I'm getting 30+ hits a day on my blog (from Russia) for a post I made about dealing with APFS issues. It's a tutorial so there's that.

I used to use static generators but I like what I can do with Express more. I now have a custom built static site generator based on Express.

I'm not sure whether you're saying the hits or your blog is from Russia. If you are trying to figure out why you're getting Russian visitors, Yandex Webmaster looks like it serves the same purpose as Google Analytics.

Setting up a server and installing commenting software, and configuring OpenAuth etc login takes some time.

If you want to skip all that, you can use Effective Discussions embedded comments, demo: https://www.kajmagnus.blog/new-embedded-comments. It's open source (https://github.com/debiki/ed-server, I'm developing it), no ads, and has the features Schnack has (notifications via email) and some unique things people here at HN might like:


Go to https://www.effectivediscussions.org/ and click Create Forum and then choose Blog Comments if you want to try it out. (I hope some self promotion is ok.) It's also lightweight, just a 140 kb Javascript bundle.

I wouldn’t exactly call 140k „lightweight“ ;-)

I suppose it depends on with what one compares. Compared with Disqus, which is, according to the article, about 750 kb, then, light-weigth. Compared with Schnack, then not light-weight. So, maybe both "yes" and "no" makes sense.

Anyway it loads quickly on my mobile phone (before I've scrolled down to the blog comments if I start scrolling directly) — maybe that's what matters, anything else people aren't going to notice anyway. ... Hmm unless they're on a slow 3G connection, then would be good if I could remove more js.

I understand the sentiment to move away from Disqus.

How does this project compare to Mozilla's Coral Project[0]?

[0]: https://coralproject.net/products/talk.html

Developer with The Coral Project here.

Schnack seems to provide a simple solution to the "let us put some comments on the site" in a very simple and pleasantly small package. (Like seriously small, we're jealous of those numbers :))

Talk on the other hand provides a full admin panel for moderators, a robust plugin system for configuring every part of the experience.

Admittedly, not every small blog is going to need all of our features. If you want comments to work on your small site, Schnack seems to suit that role fine. Talk on the other hand is currently supporting millions of users and tens of millions of comments. It's a matter of scale really, both are great solutions that take the data out of a marketers hands.

I just learned about The Coral Project from this thread...

From the site, Ask and Talk seem to be aimed exclusively at News Sites (Online Journalism.)

What's your Team's take on using Talk/Ask for other purposes like Blogs or community sites for companies?

You can certainly use the tools for anything you like! We have been focused on working with newsrooms, where we feel we'll make the most impact. You can use the Ask tool to build a form, or Talk to power your comment space.

Once we reach better adoption, and we have seen quite the adoption (just today The Intercept launched[0]), we'll be able to focus on improving the landscape further.

[0]: https://theintercept.com/2017/12/18/comments-coral-project/

> supporting millions of users and tens of millions of comments

That seems like an unusually low number of comments per user, best case 99:1.

Most comments on any random blog would be the lone comment left by that particular user, right? Don't these things follow some kind of power law?

Right, but users are commenters, ie doesn’t include readers.

~ 1:99 seems to suggest the platform is pretty new and/or dominated by low participation communities. Is Mozilla Coral Project federated? Can the same person be easily counted multiple times (user)?

The numbers were roughly based on aggregated values across all our current partner companies working with us. Most of these orgs have not imported their historical data either, however they all have added support for integrating their own custom auth services into Talk, as that whole layer is pluggable, hence you might get most of the users auto-added with low participation.

The ease of use of the moderation system as well might mean that more bad comments are pushed out of the system, making it full of more higher quality discussions.

One of the pillars of Coral is to provide lots of research to assist orgs develop community strategies[0], I'd suggest taking a look if you're interested!

[0]: http://guides.coralproject.net/

The point of Disqus is that you don't have to host anything and you can publish an essentially "static" website using any static website generator or just plain HTML pages you make yourself.

At this point just build your website around the numerous CMS/Blog options available that have numerous solid comment and spam prevention systems.

A privacy-focused Disqus alternative https://github.com/adtac/commento

Honestly I think that project's using a sledgehammer to hit nails.

> There won't be an analytics dashboard with a hundred different pie charts telling you every which way the user interacted with the comments box. (There will be a moderation dashboard in the future, however.)

> Commento is not a centralized multi-site commenting system. It's simply impossible to be that and not have some sort of tracking.

I want this sort of thing. My clients want this sort of thing. What we don't want is Disqus or whoever it was that just bought them being in control of the analytics, being in control of the comments, being able to willy nilly chuck ads into the mix, being able to go bust without warning and lose all of the data

first off , if you turn off ads on disqus there are no 3rd party requests. maybe that will change with the new owners but it's disingenuous to claim disqus is doing something bad here when there's an option to turn it off.

Otherwise the number one reason I stated using disqus is spam. I wrote my own blogging and comment system in 2000. When that got spammed I switched to WordPress around 2008. Even with their anti-spam features I got tons of comment spam. I switched to disqus many years ago and I think I've had no more than 2 spam comments per year since.

Disqus benefits from being everywhere in that it can see a bad actor and prevent them from being bad everywhere else. How will this system handle that?

Unless a blog is popular, it is enough to protect posts with Google capture or similar. On a self-hosting forum with 200-300 daily views and few posts I got up to 30 daily spam attempts by bots that passed through email registration. Google capture removed all of that so far.

If you are interested in an alternative to Disqus, take a look at Graphcomment, there is a free plan as well, plus we dont resell your data.


Disclaimer: I work for this company.

Free advice -- worth what you paid for it: for sites who don't get many comments, it doesn't matter what they use. For those that get lots of comments, the two most important things are building a community and moderating it. To a large extent, community depends on history presented cogently. To that end, showing a user where they are in a thread and what they haven't yet read is paramount.

Build distinctly better moderation tools, and the experience will be enjoyable, too.

I thought the whole advantage of Disqus was that you can keep your static blog static w/o hosting the server machinery for handling comments a la Wordpress?

Schnack takes you back to square one? At that point why not throw up a wordpress install?

One advantage of not using WordPress is not having to spend a couple hours every week restoring the latest backup you have because you got hacked again.

Been running WordPress with WordFence, Akismet antispam, and CloudFlare on a site that gets a sizable amount of traffic. No hacks yet - it's not the same insecure mess it was a decade ago.

How often do you upgrade it, and ... is your total effort suitable for a small / personal blog?

Not who you were replying to, but I helped a Luddite friend set up a wp blog 7 years ago and we had 1 minor hack about 6 years ago. It updates itself automatically so haven't really had to do much work with it.

I find the proposition of moving off Disqus and the performance improvements in shnack very compelling, but worry about managing spam and a server.

I haven't looked at the repo yet, but I wonder if it would be possible to make the datastore pluggable so that you could replace SQLite with, say, DynamoDB. It seems like at that point you could potentially keep everything serverless.

Barring that, would it be possible to separate out the frontend code and define an API such that a lambda function and serverless backend could be produced for this?

For what it is worth my own "toy" project for self-hosted dynamic comments does exactly that.

I support Redis and SQLite for hosting comments, and it should be possible for another user to contribute support for different backing-stores.

Plugins are supported for spam-detection, which lets me use the https://blogspam.net service (which I host) for doing real-time blog/forum spam detection.

My project is here:


It is an interesting comment on the state of commenting. Gardening the comments section is a lot of work and not something people want to spend their time on (the Blekko blog would get hundreds of spam comment attempts every day!).

That makes me wonder if there is also an opportunity for a 'meta comment' section which pulls comments from web sites like HN, Reddit, or Slashdot and puts them below the blog / article that they are related to. You could set an arbitrary vote level cutoff limit.

I've been considering doing a static/semi-static blog system which just notifies the user of discussions on referring sites, and makes it easy to link to and excerpt interesting discussion. Possibly even gives an easy way to submit links to start discussion on preferred sites.

That way, everything displayed on your blog is explicitly added there by the author, but once an interesting discussion has started you can easily direct users to it and they can participate under moderation rules of whatever forum that is.

So HN pays dang to curate, then ChucksCommentScraper.io appropriates that content for free?

That's a fair point. What I was thinking about was avoiding the possibly apocryphal notion that stories that included a link to HN for comments were penalized. It maybe that only stories that link to the 'upvote' link are penalized.

I make this type of comment a lot, but what's up with naming nowadays?

How is Schnack pronounced? How easy do you think it would be to tell somebody to try it out and how high are the chances that they'll misspell it and give up finding the site?

I don't get it.

It's German for 'chat'.

Here is the translation including audio: https://dict.leo.org/englisch-deutsch/schnack

I see--thanks.

I still think it's very hard to both spell and pronounce as a name for a product, though...

I assume it’s like snack, but with an initial sh sound.

And I don’t think software projects with inscrutable names are a new thing. I still have no idea how to pronounce “PostgreSQL”, for instance.

I assume it’s like snack, but with an initial sh sound.

It's German. I would bet it is more like shock, but with an N added.

(I can't readily verify that. I am in a library and all searches for the pronunciation lead me to audio files and I can't listen to them.)

I have always said Post-gres-Q-L which is probably wrong but it's too late to change now. I'm committed.

That is the right way to say it.

It was originally just named Postgres, as in Post Ingres, because it evolved from the Ingres database project.

^ Correct.

Same here.

You realize there are parts of the world where English is not the main language?

I do. I'm Italian and I live in Poland.

What is your point?

Agreed. Isn't the old rule, if you have to spell it in a loud public space (rather than just saying it), then it's a bad name?

How about integrating a microblogging system like Mastodon in websites so that you don't have to maintain a security sensitive service just for your blog?

I actually like hacknews' comment style the most, neat and simple, good enough for talks, no images and no videos etc too.

wish there are some light-weight forum code that is nodejs based, nodebb is a little heavy, and I don't really enjoy discourse's UI.

I wonder if one of the keys to HN's success, apart from great moderation, is that poster's identities are very subdued.

I feel it encourages responding to the post, rather than the person making it.

By contrast discourse stuffs a big image of the poster and their username in your face, as does Reddit.

I find the first impression on those platforms is that I'm talking to someone with Donald Trump's head as an Avatar and a provocative username. Which does not naturally lead to considered response.

It'd be interesting, if, at Reddit / Discourse / other places, people's names are hidden, until one clicks the post header, to reveal the username.

Then, when reading a comment, one won't know who wrote it. And can think about the content, more unbiased. And afterwards, one can click the username, in case one wants to know who the author is, because ...

... who wrote it can still matter. For example, if someone says a Linux kernel version should be avoided because of a serious bug, and he is Linus Torvalds, then you can trust that info for sure, just by looking at the name.

Maybe you'd like EffectiveDiscussions — it's light weight, client side, 140 kb js (but not server side). It's inspired by Hacker News and Reddit, as you can see on this demo page: https://insightful.demo.ed.community/-11/my-son-was-sent-hom...

+ improvements about two things here at HN that make me annoyed :-P https://www.effectivediscussions.org/-32/how-hacker-news-can...

looks very interesting, checking it out...

Why not remove comments entirely? Most people engage on secondary platforms (twitter, facebook) anyway, and most comments are garbage in my experience.

Ironically, while trying to post this comment I got ... Bad gateway: The web server reported a bad gateway error.

The author can't read the comments if people only make them on other platforms.

Sure they can. Author could specify a unique #hashtag for the post that can be used on Twitter/FB. Not sure about other platforms that support hashtags or similar concepts, but its not out of the question to track comments like that elsewhere.

In most cases on twitter/facebook, the author's official account post is going to be the main area for discussion. For places like here or reddit, alerts are an option.

That's going to happen regardless of there being a comments section right on the page.

I think disabling blog comments makes sense these days. In my previous experience managing a wordpress blog, 90% of comments were garbage and the most meaningful discussions happened on platforms where discussions are a natural fit (reddit, HN, Twitter)

Web push? That's only for Android! This author must not own an iPhone

"lack of control on our own data (the comments, in this case)"

That's what worries me about every single website out there. Suddenly they consider users' comments "their own data"

Why not? You leave a comment on a website, the websites stores it, it's the websites data.

It's your data and the website has a responsibility to steward it.

I can understand where you're coming from, in that you authored the data. However, that's different from ownership. That's determined by the terms of service of the website. If you want to retain full ownership of the content, in some (many?) cases you can only do so by not commenting on their site (or service used by the site), but rather commenting on a site you control. While some people may have an expectation that the site has a responsibility to steward the content provided by users, and I think that's a laudable goal, at the end of the day that is determined by the terms of service.

You are happy with Gmail owning all your emails then?

I'm not talking about ownership, I'm talking about storage of data.

I wouldn't be happy if Google owned my emails, but I'm happy they store them so that I don't have to run a server in my kitchen.

We were talking about ownership...

I don't know, it doesn't seem like in the quote.

Registration is open for Startup School 2019. Classes start July 22nd.

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