Here's a README.md file for your Laravel chat room app that uses Inertia, Vue, Pinia, and Laravel Echo (with Reverb) for real-time communication, including a typing indicator.
This is a real-time chat application built using Laravel, Inertia.js, Vue 3, and Pinia for state management. It leverages Laravel Echo and Reverb for WebSockets to provide real-time messaging and a typing indicator between users.
✅ Real-time chat with WebSockets
✅ Client-to-client typing indicators
✅ User authentication with Laravel Breeze
✅ Vue 3 + Inertia.js frontend
✅ Pinia for state management
✅ Laravel Echo & Reverb for WebSocket communication
✅ Persistent chat history
git clone https://github.com/yourusername/laravel-chat-room.git
cd laravel-chat-roomcomposer install
npm installCopy .env.example to .env:
cp .env.example .envGenerate an application key:
php artisan key:generateEdit your .env file and update the database settings:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_user
DB_PASSWORD=your_database_passwordRun migrations:
php artisan migrateReverb is used for WebSockets. Install it with:
php artisan reverb:installStart the WebSocket server:
php artisan reverb:startRun Laravel:
php artisan serveRun Vite for Vue frontend:
npm run devUsers can send messages in real-time to other connected users.
A real-time typing indicator is displayed when a user starts typing.
This project is open-source under the MIT License.