Skip to content

VgComments 2.x

Laravel comments stack: a core backend plus optional UI packages.

vgcommentsblade-commentslivewire-comments

Live demo: vgcomment.nghiane.com

Packages

PackageRoleCurrent
vigstudio/vgcommentsREST API, DB, moderation admin, validation2.0.2 (^2.0)
vigstudio/blade-commentsBlade + vanilla JS UI (recommended)2.0.2 (^2.0)
vigstudio/livewire-commentsLivewire 4 UI2.0.2 (^2.0)

Install one UI package (or call the API yourself). Both UIs depend on vgcomments ^2.0.

Line 1.x remains on Packagist for existing apps; new projects should use 2.0.

Requirements

  • PHP ^8.2
  • Laravel ^10|^11|^12|^13
  • Livewire ^4.0 only if you use Livewire Comments

Features

  • GitHub-style comment UI (Blade + Livewire, kept in sync)
  • Comments by page_id and/or Eloquent morph models
  • Guest or authenticated authors
  • Nested replies as a parent_id tree (deep indent)
  • Full emoji picker in the composer and for reactions (any emoji ≤ 32 chars)
  • Dual upload paths: paperclip → attachment chips; insert image / paste / drop → inline ![]() Markdown
  • Markdown toolbar + soft emphasis normalization (**bold ** still bolds)
  • Blade: inline reply form under the comment being replied to
  • File attachments, reports, moderation admin
  • reCAPTCHA v3, StopForumSpam, optional NSFW image check
  • Admin dashboard + runtime settings (/{prefix}/admin)

Quick start

bash
# Recommended — Blade UI (no Livewire required)
composer require vigstudio/blade-comments:^2.0

# Option B — Livewire 4 UI
composer require vigstudio/livewire-comments:^2.0

Then publish config/assets, migrate, and drop a component into a Blade view. See:

Architecture

Your app view

    ├─ Blade box + JS      ──► HTTP REST API ──► CommentService / DB

    └─ Livewire component  ──► CommentService / DB

                                              Admin panel

Layout isolation

Load @commentBladeStyles / @commentStyles only on pages that render comments — do not put package CSS in global guest/login layouts.

MIT · Blade-first for 2.x · Livewire 4 supported