Download the PHP package rahatulrabbi/talkbridge without Composer
On this page you can find all versions of the php package rahatulrabbi/talkbridge. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download rahatulrabbi/talkbridge
More information about rahatulrabbi/talkbridge
Files in rahatulrabbi/talkbridge
Package talkbridge
Short Description A professional real-time chat package for Laravel with private and group conversations, message reactions, file attachments, message status tracking, and WebSocket support.
License MIT
Homepage https://github.com/learnwithfair/talkbridge
Informations about the package talkbridge
TalkBridge
Real-time chat package for Laravel 11, 12 and 13.
Private and group conversations, message reactions, file attachments, message status (sent / delivered / seen), typing indicators, user blocking, group management, FCM and Web Push notifications, WebSocket broadcasting via Reverb or Pusher.
Zero manual steps. Everything is configured automatically on install and removed on uninstall.
Requirements
| Dependency | Version |
|---|---|
| PHP | 8.2 or higher |
| Laravel | 11.x, 12.x, or 13.x |
| Laravel Sanctum | 4.x or 5.x |
All optional packages (Reverb, Pusher, Firebase, Web Push) are installed
automatically based on your choices during talkbridge:install.
Quick Start
The wizard asks two questions, then does everything else automatically:
After answering, TalkBridge:
- Installs the broadcaster package (
composer require laravel/reverbetc.) - Installs the push notification package (
composer require kreait/laravel-firebaseetc.) - Runs
composer dump-autoloadafter each install - Publishes
config/talkbridge.php - Publishes all database migrations
- Writes all
.envvariables - Injects
HasTalkBridgeFeaturesinto yourApp\Models\User - Adds
last_seen_atto$fillable(if your model uses$fillable) - Registers middleware alias, scheduler, broadcast channels, API routes — all via ServiceProvider
After Install
Configuration
Open config/talkbridge.php. The most important section is user_fields.
User field mapping
TalkBridge needs to know your column names. Change the values to match your database:
Composite name columns
If your users table stores first and last name separately:
TalkBridge will automatically join them with a space everywhere — system messages, presence channel payloads, reaction lists, conversation resources.
Disable built-in routes
If you want to define routes yourself:
Copy stubs/talkbridge/ to your routes folder and register manually in bootstrap/app.php.
Change route prefix or middleware
Change upload disk
Group defaults
Control what settings new groups get:
Using TalkBridge in Your Own Code
Every feature is available as a service method. Inject ChatService anywhere
in your application.
Inject the service
Or use the Facade:
Conversations
Messages
Reactions
Group Management
User Blocking and Restricting
Customizing Existing Behavior
Override a controller
Publish the stubs:
Then create your own controller that extends the package controller:
Disable the built-in routes and register yours:
Extend ChatService
Bind it in your AppServiceProvider:
Listen to real-time events in your backend
Add custom fields to conversation or message responses
Publish the resource stubs and override:
Extend the resource:
Bind in AppServiceProvider:
Use helpers directly
Use trait methods on your User model
After install, your User model has these methods available:
Frontend Integration
Vue 3 / React — echo.js (Reverb)
Channel subscriptions
For Flutter and React Native integration, see docs/mobile/README.md.
API Endpoints
All under /api/v1 with Sanctum auth (Authorization: Bearer {token}).
Conversations
| Method | Endpoint | Description |
|---|---|---|
| GET | /conversations |
List all (paginated, ?q=search) |
| POST | /conversations |
Create group |
| POST | /conversations/private |
Start or get private conversation |
| DELETE | /conversations/{id} |
Remove for current user only |
| GET | /conversations/{id}/media |
Media library |
Messages
| Method | Endpoint | Body / Notes |
|---|---|---|
| POST | /messages |
{conversation_id, message, message_type} |
| GET | /messages/{conversation} |
Paginated, ?q=search |
| PUT | /messages/{message} |
{message} |
| DELETE | /messages/delete-for-me |
{message_ids: [1,2]} |
| DELETE | /messages/delete-for-everyone |
{message_ids: [1]} |
| GET | /messages/seen/{conversation} |
Mark all seen (on open) |
| POST | /messages/mark-seen |
{conversation_id, message_ids:[...]} |
| GET | /messages/delivered/{conversation} |
Mark as delivered |
| POST | /messages/{message}/forward |
{conversation_ids: [2, 3]} |
| POST | /messages/{message}/toggle-pin |
Pin or unpin |
| GET | /messages/{conversation}/pinned-messages |
All pinned |
Reactions
| Method | Endpoint | Body |
|---|---|---|
| POST | /messages/{message}/reaction |
{"reaction":"❤️"} |
| GET | /messages/{message}/reaction |
Returns grouped reactions |
Group
| Method | Endpoint | Body / Notes |
|---|---|---|
| POST | /group/{id}/update |
{name, group:{description, avatar, type, ...settings}} |
| POST | /group/{id}/members/add |
{member_ids: [5,6]} |
| POST | /group/{id}/members/remove |
{member_ids: [5]} |
| GET | /group/{id}/members |
All members |
| POST | /group/{id}/admins/add |
{member_ids: [5]} |
| POST | /group/{id}/admins/remove |
{member_ids: [5]} |
| POST | /group/{id}/mute |
{minutes: 60} / -1=forever / 0=unmute |
| POST | /group/{id}/leave |
Leave the group |
| DELETE | /group/{id}/delete-group |
Super admin only |
| POST | /group/{id}/regenerate-invite |
{expires_at?, max_uses?} |
| GET | /accept-invite/{token} |
Join via invite link |
Users
| Method | Endpoint | Notes |
|---|---|---|
| GET | /available-users?search=name |
Search users |
| GET | /online-users |
Currently online |
| POST | /users/{user}/block-toggle |
Block or unblock |
| POST | /users/{user}/restrict-toggle |
Restrict or unrestrict |
API Docx (Postman Collection)
Real-Time Events
ConversationEvent — user.{id} (private) or conversation.{id} (presence)
| Action | When |
|---|---|
added |
User added to / created a conversation |
removed |
Removed from group |
left |
Left group |
updated |
Group name / avatar / settings changed |
deleted |
Group deleted |
blocked / unblocked |
Block status changed |
unmuted |
Auto-unmuted by scheduler |
member_added / member_left |
Group membership changed |
admin_added / admin_removed |
Role changed |
MessageEvent — conversation.{id} (presence)
| Type | When |
|---|---|
sent |
New message |
updated |
Message edited |
deleted_for_everyone |
Message unsent |
deleted_permanent |
Hard deleted |
reaction |
Reaction toggled |
delivered / seen |
Status update |
pinned / unpinned |
Pin toggled |
Artisan Commands
| Command | Description |
|---|---|
composer require rahatulrabbi/talkbridge |
Latest stable |
composer require rahatulrabbi/talkbridge:1.0.0 |
Specific version |
composer require rahatulrabbi/talkbridge:"^1.0" |
Version range |
composer require rahatulrabbi/talkbridge:">=1.0.0" |
Minimum version |
php artisan talkbridge:install |
Install wizard |
php artisan talkbridge:install --broadcaster=pusher --push=fcm |
Non-interactive install |
php artisan talkbridge:install --force |
Overwrite existing published files |
php artisan talkbridge:install --no-migrate |
Skip running migrations |
php artisan talkbridge:uninstall |
Remove everything |
php artisan talkbridge:uninstall --keep-data |
Remove code, keep database tables |
php artisan talkbridge:uninstall --keep-packages |
Remove code, keep Composer packages |
php artisan talkbridge:uninstall --force |
Skip all confirmation prompts |
php artisan talkbridge:publish |
Interactive asset publisher |
php artisan talkbridge:publish --tag=config |
Re-publish config only |
php artisan talkbridge:publish --tag=migrations |
Re-publish migrations only |
php artisan talkbridge:publish --tag=stubs |
Publish stubs for customization |
php artisan talkbridge:publish --tag=lang |
Publish language files |
php artisan talkbridge:publish --tag=all |
Publish all assets |
php artisan talkbridge:publish --force |
Overwrite existing published files |
php artisan talkbridge:version |
Show installed version |
php artisan talkbridge:version --check |
Check Packagist for a newer version |
php artisan talkbridge:update |
Update to latest version |
php artisan talkbridge:update --to=1.0.0 |
Install a specific version |
php artisan talkbridge:update --force |
Update and overwrite published config and stubs |
php artisan talkbridge:update --skip-composer |
Skip composer update (useful in CI) |
php artisan talkbridge:auto-unmute |
Process expired mutes (auto-run by scheduler every minute) |
Uninstall
TalkBridge reads TALKBRIDGE_INSTALLED_BROADCASTER and TALKBRIDGE_INSTALLED_PUSH
from .env to know exactly which packages it installed, so it only removes those —
it never touches packages that were already in your project.
After uninstall:
API Docx (Postman Collection)
Resources:
Changelog
See CHANGELOG.md.
License
MIT — see LICENSE.
Author: MD. RAHATUL RABBI — github.com/learnwithfair
All versions of talkbridge with dependencies
laravel/framework Version ^11.0|^12.0|^13.0
laravel/sanctum Version ^4.0|^5.0