Le Chat adds rich, flexible chat functionality to your Laravel application with minimal setup and maximum customization. Whether you're building one-on-one messaging, group chatrooms, or bot integrations, this package gives you the tools to implement powerful conversations between any models in your app.
- Send messages between any models
- One-to-one and multi-user chatrooms
- System messages and bot support
- Unread message tracking
- WebSocket connection detection
- Notifications via Laravel and WebPush
- REST API endpoints included
- No frontend views — bring your own UI
composer require mmedia/le-chat
Publish migrations and config:
php artisan vendor:publish --tag="chat-migrations"
php artisan migrate
php artisan vendor:publish --tag="chat-config"
Chatroom
: A conversation space containing messages and participantsChatParticipant
: A polymorphic link between your models and a chatroomMessage
: A message sent by a participant in a chatroomIsChatParticipant
Trait: Add to any model to enable chat behavior
- PHP 8.0+
- Laravel 11+
$message = $user->sendMessageTo($otherUser, "Hello!");
$reply = $otherUser->sendMessageTo($user, "Hi back!");
Easily send messages to:
- Individual users
- Multiple recipients
- Entire chatrooms
- Non-model participants (bots, services, etc.)
Unlike Chatify, Le Chat does not limit messages to one sender and one recipient. This package supports:
- Multi-participant chatrooms
- Flexible polymorphic model support
- Bots and non-DB participants
See the complete usage guide for in-depth examples, APIs, and advanced features:
- Wirechat — Livewire-heavy
- Musonza Chat — Feature-rich but complex
- Le Chat — Simple API, full flexibility, no view layer
- Teacher ↔ Student chat (one-on-one)
- Teachers + Students group chats per class
- Chatbot ↔ User conversations
- Cross-platform relay (e.g. Slack integration)
MIT ©