Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Wirechat Laravel Package

namu/wirechat

WireChat is a Laravel Livewire package for adding real-time private and group chat to your app. It offers media attachments, emoji reactions, read receipts, typing indicators, moderation tools, and a customizable Tailwind UI, with easy setup and integration.

View on GitHub
Deep Wiki
Context7

WireChat is a real-time chat package for Laravel built on Livewire and Tailwind CSS. It adds private and group conversations to your app without a separate frontend stack, shipping with a responsive UI, read receipts, and notifications out of the box. Install it via Composer, run the migrations, and render the chat panel in any Livewire view.

  • Private and group conversations
  • Media attachments and message replies
  • Livewire-powered live updates and read receipts
  • Customizable UI with published Blade and Tailwind views
  • Authorization hooks for custom access rules
Frequently asked questions about Wirechat
How do I install WireChat in a Laravel application?
Install the package with Composer (namu/wirechat), then publish its config and migrations and run the migrations. Next, implement the WirechatUser contract and add the InteractsWithWirechat trait to every model that should participate in chats. Finally, create and register a PanelProvider and configure the guards the panel should use. Real-time messaging additionally requires an Echo-compatible broadcaster, channel authorization, and queue workers for the messages and events queues.
Which Laravel, PHP and Livewire versions does WireChat support?
The package advertises support for PHP 8.1 through 8.4, Laravel 10 through 13, and Livewire 3.7 through 4.0. That is a wide compatibility matrix for a small project, so test on the exact version extremes you plan to run rather than assuming the middle of the matrix is representative. Pin versions in composer.json and run your test suite before every upgrade.
Does WireChat support real-time messaging, and what happens if broadcasting is not available?
Yes — WireChat is built around Echo-compatible broadcasting, with channel authorization, per-panel broadcast configuration, and dedicated queues for messages and events. It also offers optional web push via a service worker. What the package does when broadcasting is unavailable (polling fallback versus silent staleness) is not clearly documented, so verify this behavior in your environment before relying on it. In production you should also run queue workers so messages are delivered promptly.
Can WireChat handle group chats, invitations and join requests?
Yes. WireChat ships a full chat domain including private one-to-one chats, self chats, groups, invitations, and join requests, plus attachments and embeds. This is a batteries-included package rather than a thin messaging primitive, so you get the conversation model and UI together. Review the domain model early to confirm it matches your expected permission and invitation semantics.
Does WireChat work with an Inertia, React or Vue SPA, or as a headless API?
No. WireChat's primary surface is Blade, Tailwind and Livewire components shipped with routes, middleware and migrations, so it fits a Laravel monolith rendering Blade views. A widget mode exists for embedding a chat surface, but it is a UI embed rather than a headless API contract you can drive from a separate frontend. For an API-first or SPA architecture you would need a different package or significant custom work.
Can WireChat support multiple user models and multiple guards in one app?
Yes, WireChat uses polymorphic participants and panel-level guard configuration, so multiple participant model types and multiple guards can coexist. This is genuinely useful for B2B2C scenarios where staff and end customers share a conversation model, or where a customer-facing widget and an internal console live in the same deployment. Because of that flexibility, authorization and cross-tenant isolation are your responsibility to design, not something you can assume from the package.
How do I configure file attachments, storage disks and upload limits in WireChat?
Attachment behavior is configured per panel through options such as the storage disk, visibility, attachment directories, and MIME and size limits. Decide early whether attachments live on a private disk and are served through signed or otherwise authorized URLs, since that materially affects your security posture. Also check that the storage disk and queue configuration you choose survive package upgrades, because both sit inside the panel surface.
Is WireChat production-ready, and who maintains it?
WireChat has meaningful traction but limited external validation — roughly 577 GitHub stars and no dependents on Packagist — so you would be an early adopter and should treat it accordingly. The repository name (wirechat/wirechat) and the Composer package name (namu/wirechat) differ, and documentation references a wirechat-pro sibling, so confirm which source is canonical and who publishes releases. Before committing, ask about release cadence, the semver and deprecation policy for panel methods and component aliases, and whether core group, invite and broadcast fixes land in the free package or drift into pro.
How stable are WireChat's public APIs when upgrading?
The project explicitly treats panel methods, route middleware aliases, Livewire component aliases, config keys and user-model traits as durable public API, which is honest but also a broad commitment. Because broadcasting, storage and queue settings are part of the panel surface, a package upgrade can change runtime behavior and not just code. Publish and version-control your config and views, read the upgrade notes, and re-run integration tests against your exact Laravel and Livewire versions before deploying.
How should I test a Laravel app that integrates WireChat?
Test WireChat like any Livewire feature: render the components in Livewire tests, register the PanelProvider in your test case, and assert on conversations, participants and messages created through the package's actions. Fake the broadcaster and use the sync or database queue driver in tests so queue workers are not required. Add explicit tests for guard isolation and for your searchUsersUsing callback, since a search that spans guards or tenants is the most likely place for a data leak.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib