Skip to main content
The free package reads config/commentify.php. Publish it with php artisan vendor:publish --tag=commentify-config. Pro publishes one file:
That creates config/commentify-pro.php. Values under core are copied onto config('commentify') at boot so the free package keeps reading the keys it already knows.
Do not also keep a published config/commentify.php unless you installed core first and have not merged yet. If that file exists, the overlay is skipped and core has no effect until you delete it.

core

Mirrors the free package’s config/commentify.php.
On a free install these keys sit at the top of config/commentify.php. Pro copies the core array onto that bag at boot. lazy, tree_loader, and max_depth shipped in 4.3 and default to the previous behaviour. Behaviour of sorting, markdown, approval, lazy loading, and the CTE loader is on Threads. login_route is the named route for the composer login link. A missing route fails quietly. Mention profile links use users_route_prefix plus users_route_key (name or id). Set user_profile_route to a named route such as users.show when you want that instead. mentions.handle_column is the column MentionSearch matches. Null uses name. Pro’s mention API uses that search. min_length is how many characters the API waits for before it queries. GET /commentify/api/v1/ui exposes the flags and translated labels to the SDKs, so toggling sorting or reporting here changes Livewire, React, and Vue together.
honeypot and schema_org are read by Pro views. The free composer does not render the honeypot field, and the free thread does not emit JSON-LD. Everything from commentables downward on this page is Commentify Pro.

Theme and CSS

  • Tailwind v4: include @custom-variant dark (&:where(.dark, .dark *)); in your CSS (Livewire Flux already does).
  • Bootstrap 5: dark mode uses data-bs-theme="dark".
  • Publish views only if you must customize them. Published views override package views and will not pick up later markup changes automatically.

commentables

See Usage and Thread modes. Empty by default until the installer or you fill it. String values are discussion mode.

api

guest_comments => false keeps guests on Livewire but locks the JSON API. Pair guard and middleware or every browser write is an unauthenticated 401. Full detail: Authentication and API. per_page on list endpoints is capped at 50. Cursor pagination (?cursor=) is available for newest and oldest sorts.

spam

Worst verdict wins: deny > review > allow. See Spam pipeline.

guests

notifications

See Notifications.

media

See Image uploads. If bucket is set, Pro registers a commentify-media disk cloned from filesystems.disks.{disk} with that bucket.

realtime

See Realtime.

webhooks

See Webhooks.

badges

See Badges and pins.

threads

See Named threads. A per-record override goes in commentify_thread_settings through ThreadSettings::put().

reactions

See Reactions. Livewire shows these on each comment. React and Vue do not render them yet.

toxicity

Add 'toxicity' to spam.checkers as well. See AI toxicity.

ai

OpenAI-compatible embeddings and chat on your key. Commentify never hosts models. See Bring-your-own-key AI.

gdpr

See GDPR.

Environment variables

The free Filament Commentify Settings page can toggle many core flags without editing the file. Guest commenting (allow_guests) stays in config.
Last modified on November 1, 2026