> ## Documentation Index
> Fetch the complete documentation index at: https://docs.commentify.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# Commentify Pro

> Self-hosted comments for Laravel: Livewire, React, and Vue on one JSON API, plus a spam pipeline and Filament moderation.

Commentify Pro is the production layer on the open-source [Commentify](https://github.com/usamamuneerchaudhary/commentify) package. It never forks core. The MIT package stays a Composer dependency, and Pro adds a versioned JSON API, React and Vue SDKs that match the Livewire UI, a spam pipeline, Filament Pro tools, media, webhooks, Reverb, imports, and GDPR CLI.

Comments for a blog. Reviews for a product. Notes on a recipe. Same package — self-hosted in your Laravel app.

<Card title="Installation" icon="rocket" href="/quickstart">
  Require the private Composer repo and run `commentify-pro:install`.
</Card>

<Card title="JSON API" icon="code" href="/api">
  Versioned `commentify/api/v1` with aliases, rate limits, and structured errors.
</Card>

<Card title="React and Vue" icon="puzzle-piece" href="/javascript">
  One UI contract. SDKs ship inside Composer — nothing to buy from npm.
</Card>

<Card title="Spam pipeline" icon="shield-check" href="/spam">
  Heuristic first, optional Akismet and toxicity, Filament queue on top.
</Card>

## Free vs Pro

Keep this honest when you choose a license:

| Included                                           | Commentify (MIT) | Commentify Pro                   |
| -------------------------------------------------- | ---------------- | -------------------------------- |
| `Commentable` trait + `<livewire:comments />`      | Yes              | Yes (same tables)                |
| Nested threads, markdown composer, likes, reports  | Yes              | Yes                              |
| Guest name + email posting                         | Yes              | Yes, with stricter spam          |
| Basic Filament (comments, reports, settings)       | Yes              | Yes — register both plugins      |
| JSON API `commentify/api/v1`                       | —                | Yes                              |
| `@commentify/react` and `@commentify/vue`          | —                | Yes, parity-tested against Blade |
| Spam pipeline (heuristic / Akismet / toxicity)     | —                | Yes                              |
| Filament moderation queue, spam log, audit, charts | —                | Yes                              |
| Image uploads, webhooks, Reverb                    | —                | Yes                              |
| Disqus / WordPress import, GDPR CLI                | —                | Yes                              |

The free happy path did not change when Pro launched: trait on a model, Livewire component on the page.

## Requirements

* PHP 8.2+
* Laravel 12 or 13
* Commentify core `^4.0` (pulled in by Pro)
* Livewire 4 if you use the Blade UI
* Filament v4 or v5 if you want the admin plugins (optional)
* Tailwind CSS v4 or Bootstrap 5 for the published views

## How Pro layers on

Every comment — Livewire **or** the API — hits the same `comments` table and the same model observers. Pro's spam pipeline, approval, webhooks, and broadcasts run on create and edit regardless of frontend.

React and Vue do not ship a second UI. Class strings live once in `@commentify/core`. A PHPUnit test compares them to core's Blade views; Vitest compares what React and Vue actually emit. Change Blade without updating the SDKs and the build fails.

Everything the JS thread needs to stay in step comes from the server:

| Comes from              | So that                                                             |
| ----------------------- | ------------------------------------------------------------------- |
| `GET ui`                | Labels use your translations and locale                             |
| `GET ui`                | Feature flags match `config/commentify-pro.php` (`core` + Pro keys) |
| `POST markdown/preview` | Preview renders through the same presenter as Blade                 |
| `relative_created_at`   | "2 minutes ago" is worded and localised once                        |

## Try it first

The live demo is a real Laravel app, not a screenshot: [commentify.pro](https://commentify.pro). Flip flags on a live thread in the [playground](https://commentify.pro/playground), compare stacks at [commentify.pro/stacks](https://commentify.pro/stacks), then buy if it fits.

<Tip>
  License checks happen at Composer install against the private repo. There is no phone-home call on page requests. See [Licensing](/licensing).
</Tip>
