Colaua: GNU social conversations in static HTML pages

The progressive adoption of static site generators (or SSGs, like Jekyll or Nikola) for blogs has resulted in many sites dropping comments (i.e. dynamic content), which is detrimental to the use of blogs as a medium for thoughtful and diverse conversation. To avoid this loss of functionalty, other static sites have instead opted for centralized, closed and mutually incompatible platforms (like Disqus or IntenseDebate) to host their comments. However this adds to the recentralization trend that is plaguing the Internet in the latest years.

There are Free Software alternatives (like Isso) that allow people to run their own comment servers. However, they still keep the comments of each site as a closed silo. In contrast, some months ago Enkidu (Las Indias) started the development of the WP-GNU social WordPress plugin, which uses conversations in GNU social (a federated microblogging system) as a replacement for classic site-only comments.

In a similar spirit, Colaua augments static HTML pages with conversations hosted in GNU social. The conversation itself is fetched from the GNU social API using JavaScript code running in the browser and then dynamically included in the post's comment section. This obviates the need for dynamic server code (like PHP), keeping the pages amenable to store in distributed systems like IPFS or ZeroNet.

The full Colaua package is intended to be an extension to the Nikola SSG that (as the WP plugin does) automatically creates a GNU social notice linking to the newly generated post, then adds some HTML code to the post output to enable the JavaScript part to show the newly created conversation.

In spite of the current version still missing all Nikola-related code, the JavaScript part can already be used in any HTML page, whether written manually or generated programmatically as a static or dynamic page. Just follow the instructions in Colaua's readme file (i.e. include some scripts and a placeholder element with the —existing— conversation URL), throw in a little CSS to make it look nice, and you're done.

Happy (and distributed) 2016!