Introducing Commentry, a simple commenting system for static websites. Commentry consists of a JavaScript client and a Python+Flask server. Simplicity and privacy drove the design.

Commentry is pretty simple. I want to enable feedback without it getting in the way of the author expressing their thoughts. The formatting is basic (paragraphs, bold and italics, that’s it) and there is no threading. Some of that may evolve over time, though probably not much in the formatting.

No registration is required. Comments may be posted anonymously (in a later version this may be optionally enforced or restriced for different sites). If a name is provided, a user password is generated automaticaly and stored in a cookie. This essentially reserves this username and also effectively restricts it to the browser, unless the cookie is copied or otherwise shared to another device or browser. In a later version, a user dashboard will allow a user to reset this password to something known, and there will be some kind of login for users wanting to use a changed password.

The underlying principle is that nothing gets in the way of posting a comment. You might have to choose a different nick/username, or you could just post anonymously.

Cookies are not required to use Commentry. If you want to remain anonymous, post anonymously.

Basic moderation is partially implemented. Moderation can be configured per-site or per-user, but this is currently managed by issuing SQL statements. An administrative backend implements per-comment moderation whereby the site owner can accept or reject comments.

A final requirement for Commentry is that it’s not required to read the site. If you disable JavaScript, that’s fine, the site isn’t predicated on it in any way. You just won’t be able to comment.

A back-end feature I’d like to implement, but haven’t yet, is some basic visit monitoring. This would be based on cookies and originating IP and help me track, basically, whether anybody is visting and whether they’re returning. This is a poor substitute for server logs when those are not available, but are tied to the user, if not anonymous.

Other things to implement:

  • a non-JavaScript option. Yuck, but maybe (I don’t love JavaScript for itself and completely understand why many people, including me, block it by default).
  • help text, cookie warnings, GDPR, that kind of thing
  • finish the admin panel