Comments library for Wagtail

Commentail

Comments for Wagtail sites, with CMS moderation, replies and guest email verification. Stable version 1.3.2, with UI and emails in six languages.

  • Python
  • Django
  • Wagtail
  • Open source

Main features

  • A template tag for Wagtail pages and registered Django models.
  • Four moderation policies, bulk actions with erasure confirmation, phrase rules and CSV import/export.
  • Replies, author editing and email notifications with unsubscribe.
  • Site accounts and guests with email verification.
  • UI and emails in six languages; HTML and plain-text notifications.
  • Recent-comment selection with access checks and host-owned markup.
  • A responsive widget that inherits the site theme; core workflows work without JavaScript when using the built-in arithmetic CAPTCHA.
  • Email delivery through SMTP or a mail provider’s API using a Django email backend.
  • Background processing through a scheduled command or the project’s task queue; Redis and Celery are optional.
  • Guest protection: hidden form checks, attempt limits and moderation signals for repeated long text and multiple links, including author revisions.
  • Arithmetic CAPTCHA by default; optional Google reCAPTCHA v2 and Yandex SmartCaptcha require JavaScript. Drafts survive provider errors.

About the project

Commentail is a comments library for Wagtail CMS. A template tag adds the widget to a page or a registered Django model. Comments, accounts and email delivery stay within the site owner’s application.

Commentail course: 22 lessons from installation to customization

Readers can reply and edit their own comments. Guests verify their email address; editors choose from four moderation policies and configure word and phrase rules. Bulk actions include text-erasure confirmation, and staff can be highlighted. Moderators control publication without rewriting other people’s text.

Commentail 1.3.2 is a stable release under the MIT license. It includes optional Google reCAPTCHA v2 and Yandex SmartCaptcha, hidden form checks and guest submission attempt limits. Arithmetic CAPTCHA remains the default. External CAPTCHA requires JavaScript; provider errors leave the text in an editable draft.

Version 1.3.2 fixes a regression in 1.3.1: discussions under translated Wagtail Site homepages are available again when content internationalization is enabled. Publication status, access restrictions and Site boundaries still apply to forms, protected links, queued mail and recent comments. There are no new migrations over 1.3.1. Upgrading from 1.3.0 or earlier also requires the 1.3.1 upgrade procedure, including a backup and stopped writers during the irreversible migration.

Repeated long text and multiple links send a guest comment or author revision for moderator review. By default, the checks cover repeated text of at least 80 characters within one hour per site, or messages containing three or more explicit HTTP(S)/www links. Thresholds are configurable; short common replies and one or two links do not trigger these checks. Signals do not automatically delete text, and moderators can see the reasons.

The widget inherits the site’s fonts and colors; CSS variables and templates control its appearance. The UI and emails are available in English, Russian, German, French, Spanish and Brazilian Portuguese. Emails include HTML and plain-text alternatives. A recent-comments template tag lets the host site render its own selection while respecting visitor access. Published comments support Schema.org Comment Microdata and JSON-LD.

Compatibility: Python 3.12–3.14; Wagtail 7.4 LTS from 7.4.3 with Django 5.2 or 6.0; Wagtail 8.0, including 8.0.1, with Django 5.2, 6.0 or 6.1. File-based SQLite and PostgreSQL 16 are supported.

Guest comments and notifications require configured Django email delivery and background processing once per minute. Schedule the process_commentail command or call commentail.background.process_pending() through the project’s task queue; use one schedule. Redis and Celery are not required. See the installation guide and documentation, the package on PyPI, and the stable API policy.

Comments 0

Name: up to 40 characters.

After submitting, we will email you a link to confirm your email address.

Maximum 5000 characters.

No published comments yet.

All projects