/laravel-comments

Integrate seamless commenting functionality into your Laravel project

Primary LanguagePHPMIT LicenseMIT

Documentation | Admin Panel | Overview | Key Features | Why Commenter | Quick Start | Demo | Changelog | Testing | Roadmap | Security | License

Commenter logo

Everything you need for your commenting system

A Laravel package that brings powerful commenting functionality to your apps ๐Ÿ˜

Laravel GitHub Actions Workflow Status Packagist Version Downloads GitHub License

Overview

Commenter is a feature-rich, modern package with an admin panel designed to address all your commenting needs. With this package, you won't need any additional tools for the comment functionality in your Laravel projects.

See the documentation for detailed installation and usage instructions.

<x-comments :model="$post" />

screenshot

Key Features

  • โค๏ธ Simple, modern, and user-friendly interfaces.
  • ๐Ÿ“ฑ Mobile responsiveness.
  • ๐Ÿ“ WYSIWYG editor.
  • ๐Ÿ“” Syntax highlighting.
  • ๐Ÿ”’ Robust security features.
  • ๐Ÿ”‘ Effective spam prevention.
  • ๐Ÿคฉ Reaction options.
  • ๐Ÿ“ž Support for threaded replies.
  • ๐Ÿ‘ค User mention functionality.
  • ๐Ÿ‘ฅ Display list of users who reacted (auth mode only).
  • ๐Ÿ”ข Pagination.
  • ๐Ÿ‘ฎโ€โ™‚๏ธSupport for both authentication mode and guest mode (mutually exclusive).
  • ๐Ÿ” Advanced filtering and sorting options.
  • ๐Ÿฅฐ Responsive design using a combination of Livewire and Alpine.js.
  • ๐Ÿš€ Optimized performance. And much more.

Why Commenter

The commenting feature is a common requirement for most websites. Allowing users to comment enables interaction and enhances the user experience. While Laravel offers a wealth of packages to meet various project needs, there are limited options when it comes to commenting features.

Here are some drawbacks of existing commenting packages:

  • Outdated: Uses outdated technologies and is not actively maintained.
  • Lack of Features: Missing many essential features.
  • No Admin Panel: Requires additional time to implement an admin panel independently.
  • Bad Design: Interfaces are not user-friendly.
  • Not Mobile Responsive: Not optimized for mobile devices.
  • Performance Issues: May cause performance slowdowns.
  • Lack of Configurability: Limited options for customization and configuration.

Due to these issues, most companies tend to opt for commercial packages or plugins. However, spending extra money on commercial packages reduces the company's overall profit. This package is developed to address all these shortcomings.

As a full stack developer, I have personally encountered these issues. That's why I developed this packageโ€”not only for my own projects but also to benefit other developers.

Quick Start

Installation

composer require lakm/laravel-comments -W
php artisan commenter:install
php artisan migrate --seed

Usage

Implement CommentableContract and import Commentable trait in commentable model.

use LakM\Comments\Concerns\Commentable;
use LakM\Comments\Contracts\CommentableContract;

class Post extends Model implements CommentableContract{
    use Commentable;
}

Implement CommenterContract and import Commenter trait in commenter model.

use LakM\Comments\Concerns\Commenter;
use LakM\Comments\Contracts\CommenterContract;

class Post extends Model implements CommenterContract{
    use Commenter;
}

Include styles in your layout.

<html>
    <head>
        @commentsStyles
    </head>
</html>

Include scripts in your layout.

<html>
    <body>
        @commentsScripts
    </body>
</html>

Include the comments component with the related model.

    <x-comments::index :model="$post" />

Warning

You can omit the index part but make sure to include the double colon. Otherwise Laravel will search for the component in project instead of package.

    <x-comments:: :model="$post" />

Demo

Project

https://github.com/Lakshan-Madushanka/laravel-comments-demo

Mini video

https://youtu.be/6CxgmvESsdc

Full Video

https://youtu.be/dvFIOhSpmv8

Note

This mini demo video provides a basic overview of Commenter. The full scope and features of Commenter are much more extensive. A comprehensive video will be published with the stable release.

Changelog

Please see CHANGELOG for more information what has changed recently.

Testing

./vendor/bin/pest

Roadmap

Feature Status
Comment/Reply Report TBI
Guest mode email verification TBI

Security

Please see here for our security policy.

License

The MIT License (MIT). Please see License File for more information.