From 120476d426b726a3077dedf4a2de6c82af9d86ec Mon Sep 17 00:00:00 2001 From: xdavidwu Date: Fri, 13 Aug 2021 14:51:31 +0800 Subject: [PATCH] posts: add matrix-comments --- _posts/2021-08-12-matrix-comments.md | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 _posts/2021-08-12-matrix-comments.md diff --git a/_posts/2021-08-12-matrix-comments.md b/_posts/2021-08-12-matrix-comments.md new file mode 100644 index 0000000..d11cdb7 --- /dev/null +++ b/_posts/2021-08-12-matrix-comments.md @@ -0,0 +1,37 @@ +--- +title: "Matrix-powered comments on this site" +categories: + - Misc +tags: + - site + - matrix + - en +--- + +I have changed the commenting platform from Disqus to one based on Matrix. + +There are Matrix rooms for each posts, and you can comment by either the embedded web frontend or any Matrix client. Room aliases are located above the embedded web frontend. + +You can also browse all comment rooms from Matrix Space at \#comments\_xdavidwu.eglo.ga:eglo.ga + +Here is the story behind this: + +I had been considering about moving from Disqus to an open platfrom that statisfies following criteria: + +* Accessible in some other way to those who disables JavaScript in their browsers +* Does not depend on external proprietary service +* Does not require an account just for commenting on a few sites +* Still applicable on static sites +* Still support moderation to mitigate abuses + +Staticman looked like a nice choice, but it seemed to depend on source hosting platform. I was using a self-hosted GitLab instance which it supported, but I might change my hosting platform and I did not want this to be a blocker. I would like my visitors able to see new comments as soon as possible, but if I made it fully automatic with an approach that alter the site source code, when abused it can make version control history messy and also introduce high load on building systems. I preferred a solution that neither introduce source code changes nor trigger a new build of the site when comments arrive. + +It turned out that my ideal solution would still inject content dynamically. To be friendly for visitors without JavaScript enabled, using `