Open Source
December 17, 2017

Moving from Disqus to schnack

Giuseppe Di Vincenzo
Some weeks ago we started working on schnack. A project started by Gregor Aisch aimed to offer a self-hostable Disqus-like commenting platform. Today we proudly announce that we switched our blog commenting system to schnack!
Last week Disqus has been acquired by Zeta Global, a company commited in Person-Based Marketing Powered by Artificial Intelligence, as they claim on their website. This pushed us to make the last step in order to leave Disqus.

Why we quit ?

This choice has been influenced by many different factors: we never liked the idea of hosting advertisment on our blog or, even worse, compromising our user's privacy in order to offer a commenting function. In the past we also had to face the difficulties caused by lack of control on our own data (the comments, in this case). Some changes to our blog required a lot of work with the Disqus API, also because of the limited possibilities offered by the mediocre Disqus admin UI.
The difference in terms of number and size of the files required to run the two systems is really impressive: the embed.js file used to initialize Disqus is 55 Kb, while schnack can be transfered in 8 Kb! When you load a page, the system will request the comments for this page. An empty comment page is around 5 Kb using Disqus, while schnack only needs 118 B!!!
embed.jsComment req. (empty)Other
Disqus:54.19 Kb5.93 Kb~700 Kb
schnack:8 Kb118 B0
In our case, apart from these two obvious files, Disqus downloaded circa 700 Kb of "related posts", "community features", images, ads...

Why schnack ?

The features that schnack offers were particularly interesting as they fit better to the size, the purposes and the audience of our blog.
What we immediately liked is that users can authenticate using OAuth providers like Github and Twitter (more coming soon...) and are not forced to register a new account. Even though users can login effortlessy, the comment moderation is designed to easily allow or reject comments and trust or block users.
While other platforms send an email to the administrators when new comments are awaiting for approval, schnack sends push notifications to your devices using web push. On mobile devices this feels like native app notifications.
The Push API gives web applications the ability to receive messages pushed to them from a server, whether or not the web app is in the foreground, or even currently loaded, on a user agent.
schnack storage is backed by SQLite, which is actually appropriate for the size of blogs like ours and even if it has some limitations, it can be considered very stable and allows a big control on your data.
SQLite is a self-contained, serverless SQL database. [...] it has gone on to be the second most deployed piece of software in the world. It's used in systems as important as the Airbus A350 so it comes as no surprise the tests for SQLite 3 are aviation-grade. The software itself is very small, the amd64 Debian client and library package is 765 KB when compressed for distribution and 2.3 MB when fully installed. A Minimalist Guide to SQLite
All this made schnack a very attractive commenting system for our blog, offering the right balance between easiness, flexibility and offered capabilities. We plan to work further on schnack, in order to make its installation and generally its adoption even easier and of course to add new features, keeping it stupid simple and tiny as it is now.
Stay tuned following schnack on twitter and don't forget to check out our github repository.
Further Reading
webkid logo
webkid GmbH
Kohlfurter Straße 41/43
10999 Berlin
+49 30 232 575 450