Skip to main content
Commentify Pro

Commentify Pro

Self-hosted comments for Laravel, with a native Filament admin. Comments for a blog, reviews for a product, notes on a recipe. Same package. The MIT Commentify package is the Livewire thread. Commentify Pro layers on it (it never forks it): a versioned JSON API, React and Vue SDKs that match the Livewire UI, discussion / reviews / Q&A modes, bring-your-own-key AI, a spam pipeline, and Filament Pro tools (moderation queue, spam log, audit trail, charts).

Requirements

  • PHP 8.3+
  • Laravel 12 or 13
  • Filament v4 or v5 (optional, required for the admin plugins)
  • Livewire 4 if you use the Blade UI
  • Tailwind CSS v4 or Bootstrap 5 for the published views

Filament at a glance

Register both plugins. Pro is additive. It does not replace the free resources. Navigation group: Commentify.

Installation

1. Core (always)

2. Pro (after purchase)

The installer publishes config/commentify-pro.php, asks which frontends you use (Livewire / React / Vue), which API guard, which spam checkers, and which models may receive comments. It is safe to re-run. Scripted:
License checks happen at Composer install only. There is no runtime phone-home. If you already published config/commentify.php from the free package, merge those values into commentify-pro.core and delete the extra file. Until you do, Pro will not overlay core settings.

3. Register the Filament plugins

In your panel provider (for example app/Providers/Filament/AdminPanelProvider.php):
Free-only installs omit CommentifyProPlugin.

Make a model commentable

Livewire (core UI)

Pro’s spam pipeline, approval, webhooks, and broadcasts run on the Comment model, so they apply to Livewire automatically.

React / Vue (Pro)

Map a URL-safe alias. The API never accepts class names:
The React and Vue SDKs ship inside the Composer package (not npm). The installer copies them to resources/js/vendor/commentify/ and adds file: dependencies. Point Tailwind at that path so classes are not purged:
See docs.commentify.pro/javascript for Vite / React Refresh notes.

Filament: free plugin

Comments

View, edit, and delete comments. Likes count, replies count, reports count, commentable type, parent/child, soft deletes. When require_approval is on:
  • Approve / Disapprove on each row
  • Bulk approve / disapprove
  • Filter by approval status (Approved / Pending / All)

Comment reports

Community reports from the thread kebab menu (spam, inappropriate, offensive, other). Review, dismiss, filter by status. Each visitor can report a comment once.

Commentify Settings

Toggle most core flags from the panel: CSS framework (Tailwind / Bootstrap), theme (light / dark / auto), sorting, reporting, notifications, markdown toolbar/preview, emoji picker, read-only, require approval. Guest commenting (allow_guests) stays in config.

Filament: Pro plugin

Moderation queue

Dedicated queue over the same Comment model. Navigation badge shows the pending count. Filters: pending only, has reports, contains links, commentable type, unanswered questions, reviews missing a rating.

Spam log

Every non-allow spam verdict (review or deny): excerpt, checker, reasons, user id. Not spam re-approves the matched held comment and submits ham to Akismet when a key is configured.

Moderation audit

Who did what: approve, unapprove, delete, ban_author, not_spam, pin, unpin.

Widgets

  • Pending moderation stat
  • Comments per day chart

Spam pipeline (Pro)

Every comment, from Livewire or the API, is inspected on create and on body edit. Built-in checkers (run in order; worst verdict wins):
  • heuristic: link caps, blocked terms/domains, duplicate window, trust after N approved comments. Stricter rules for guests.
  • akismet: AKISMET_KEY. Honours Akismet’s discard header.
  • toxicity: Google Perspective, COMMENTIFY_PERSPECTIVE_KEY, hold/deny thresholds.
Write your own by implementing Usamamuneerchaudhary\CommentifyPro\Contracts\SpamChecker and listing the class in spam.checkers.

Configuration

Pro publishes one file: config/commentify-pro.php. Core Commentify keys live under core and are copied onto config('commentify') at boot.
Avatars: add HasUserAvatar on your user model and set core.user_model. Comment bans: add HasCommentBan and a comment_banned_until column. Filament Pro’s Ban author uses it.

JSON API (Pro)

Prefix commentify/api/v1 (configurable). Pair api.guard with api.middleware or writes return 401 while reads still work: Stable error code values: spam_rejected, read_only, comment_banned, already_reported, nesting_disabled, parent_mismatch, cannot_pin_reply, cannot_accept_parent, accepted_answers_disabled.

Other Pro features

  • Thread modes: discussion, reviews (1-5 stars, one per author), qa (accept a reply). See docs.commentify.pro/modes.
  • BYO-key AI: OpenAI-compatible embeddings and chat. Duplicate intercept + Post anyway, Filament Draft reply. No hosted models. See docs.commentify.pro/ai.
  • Guests: name + email posting is a core MIT flag (allow_guests). Pro adds stricter spam and API/SDK fields. Guests cannot edit or delete.
  • Mail: reply, @mention, thread subscriptions (subscribe_to_replies), signed unsubscribe, php artisan commentify:digest-moderators.
  • Media: GIF / JPEG / PNG / WebP, per-role size and rate limits, optional S3 bucket.
  • Reverb: COMMENTIFY_REALTIME=true broadcasts approved creates and likes on commentify.{alias}.{id}.
  • Webhooks: queued JSON POSTs for pending, report, spam_deny.
  • Badges & pins: author / staff / guest badges; one pinned parent per thread.
  • Import: php artisan commentify:import-disqus and commentify:import-wordpress (idempotent via import_source + import_id; requires allow_guests).
  • GDPR: commentify:gdpr-export, commentify:gdpr-erase, commentify:gdpr-anonymize-ips.

Pricing

The React and Vue SDKs are included in the Composer package. One license covers PHP and JavaScript.

Support

Email hello@usamamuneer.me. Full documentation: docs.commentify.pro
Last modified on November 1, 2026