6c96fb900b0b3e0533a87f4ebe8692331ba85a08
Update all tests to use new form state paths (commentData.body, editData.body, replyData.body) instead of removed public properties. Remove searchUsers() tests (method replaced by MentionProvider). Add BladeUI Icons service providers to TestCase for RichEditor views.
Comments
A full-featured commenting system for Filament panels with threaded replies, @mentions, emoji reactions, and real-time updates.
Features
- Threaded Replies - Nested comment threads with configurable depth limits
- @Mentions - Autocomplete user mentions with customizable resolver
- Emoji Reactions - 6 built-in reactions with configurable emoji sets
- File Attachments - Image and document uploads with validation
- Notifications & Subscriptions - Database and mail notifications with auto-subscribe
- 3 Filament Integrations - Slide-over action, table action, and infolist entry
Requirements
- PHP: 8.2+
- Laravel: 12+
- Livewire: 3.5+ / 4.x
- Filament: 4.x / 5.x
Installation
composer require relaticle/comments
Publish and run migrations:
php artisan vendor:publish --tag=comments-migrations
php artisan migrate
Usage
Set Up Your Models
Add the commenting traits to your models:
use Relaticle\Comments\Concerns\HasComments;
use Relaticle\Comments\Contracts\Commentable;
class Project extends Model implements Commentable
{
use HasComments;
}
Add the commenter trait to your User model:
use Relaticle\Comments\Concerns\CanComment;
use Relaticle\Comments\Contracts\Commentator;
class User extends Authenticatable implements Commentator
{
use CanComment;
}
Register the Filament Plugin
use Relaticle\Comments\CommentsPlugin;
public function panel(Panel $panel): Panel
{
return $panel
->plugins([
CommentsPlugin::make(),
]);
}
Add Comments to Your Resources
Use the slide-over action on view/edit pages:
use Relaticle\Comments\Filament\Actions\CommentsAction;
protected function getHeaderActions(): array
{
return [
CommentsAction::make(),
];
}
Or add as a table action:
use Relaticle\Comments\Filament\Actions\CommentsTableAction;
public static function table(Table $table): Table
{
return $table
->actions([
CommentsTableAction::make(),
]);
}
Or embed in an infolist:
use Relaticle\Comments\Filament\Infolists\Components\CommentsEntry;
public static function infolist(Infolist $infolist): Infolist
{
return $infolist->schema([
CommentsEntry::make('comments'),
]);
}
View Complete Documentation ->
Our Ecosystem
FilaFormsVisual form builder for all your public-facing forms. Learn more -> |
Custom FieldsLet users add custom fields to any model without code changes. Learn more -> |
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License. See LICENSE for details.
Description
A Filament comments package with threaded replies, mentions, reactions, file attachments, notifications, and real-time updates
Languages
PHP
90.7%
Blade
9.1%
CSS
0.2%

