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, a spam pipeline, and Filament Pro tools (moderation queue, spam log, audit trail, charts).

Requirements

  • PHP 8.2+
  • 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.

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 — Livewire or 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.
  • akismetAKISMET_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.

Other Pro features

  • 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.
  • ReverbCOMMENTIFY_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.
  • Importphp artisan commentify:import-disqus and commentify:import-wordpress (idempotent via import_source + import_id; requires allow_guests).
  • GDPRcommentify: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 September 12, 2026