PHPackages                             ambrosethebuild/simple-chat - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. ambrosethebuild/simple-chat

ActiveLibrary[Framework](/categories/framework)

ambrosethebuild/simple-chat
===========================

A flexible Laravel chat package with support for sharded SQLite, Eloquent, and Appwrite backends.

v1.0.64(2mo ago)022MITBladePHP ^8.1

Since Feb 22Pushed 1mo agoCompare

[ Source](https://github.com/ambrosethebuild/simple-chat)[ Packagist](https://packagist.org/packages/ambrosethebuild/simple-chat)[ RSS](/packages/ambrosethebuild-simple-chat/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (4)Versions (12)Used By (0)

Simple Chat
===========

[](#simple-chat)

A flexible, drop-in Laravel chat package designed to support both peer-to-peer messaging and customer support ticket flows. It features multiple adaptable backends, including self-hosted SQL databases and seamless frontend realtime integrations using Supabase or Appwrite.

Features
--------

[](#features)

- **Multi-Driver Architecture:** Swap between `sqlite_sharded`, `eloquent` (MySQL/PostgreSQL), `appwrite`, or `supabase` seamlessly.
- **Two Distinct Modes:** Run peer-to-peer direct conversations (`direct`) or assignment-based helpdesk ticket flows (`support`).
- **Support Workflows:** Assign agents, enforce Role-Based Access Control (RBAC) permissions (view, assign, reply, close), and prevent duplicated active tickets per user.
- **Realtime Ready:** Features built-in out-of-the-box frontend listener strategy for Appwrite and Supabase Realtime SDKs, seamlessly falling back to long-polling for standard drivers.
- **Ticket Lifecycles:** Support soft and hard deletes with restore functionality. Automatically prevent assignments and new replies on closed and trashed tickets.
- **Rich User Interface:** Uses Tailwind CSS, bundled with elegant, configurable themes. Use a clean auto-expanding textarea or toggle the robust WYSIWYG editor (Quill.js).
- **Isolated Blade Components:** Clean customizable views mapped through configuration values.

---

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require ambrosethebuild/simple-chat
```

Publish the package configuration file, migrations, and views:

```
php artisan vendor:publish --provider="SimpleChat\SimpleChatServiceProvider" --tag="simple-chat-config"
php artisan vendor:publish --provider="SimpleChat\SimpleChatServiceProvider" --tag="simple-chat-views"
php artisan vendor:publish --provider="SimpleChat\SimpleChatServiceProvider" --tag="simple-chat-translations"
php artisan vendor:publish --provider="SimpleChat\SimpleChatServiceProvider" --tag="simple-chat-channels"
```

Then run your migrations:

```
php artisan migrate
```

> **Note on Styling:** Since the views utilize Tailwind CSS, make sure to add the package's view paths to your `tailwind.config.js` `content` array so its utility classes are compiled properly:
>
> ```
> content: [
>     // ...
>     "./vendor/vendor/simple-chat/resources/views/**/*.blade.php",
> ],
> ```

---

Configuration
-------------

[](#configuration)

The published `config/simple-chat.php` gives you granular control over features, modes, themes, and text parameters. Here are the core environmental toggles:

### 1. Modes

[](#1-modes)

Set the chat workflow mode directly using your `.env` file:

```
# "direct" or "support"
SIMPLE_CHAT_MODE=support
```

### 2. Supported Drivers

[](#2-supported-drivers)

Out of the box, Simple Chat supports four powerful persistent layers:

```
# "sqlite_sharded", "eloquent", "appwrite", "supabase"
CHAT_DRIVER=eloquent
```

**Supabase Integration Example:**

```
SUPABASE_URL="https://your-project.supabase.co"
SUPABASE_KEY="your-anon-key"
```

**Appwrite Integration Example:**

```
APPWRITE_ENDPOINT="https://cloud.appwrite.io/v1"
APPWRITE_PROJECT_ID="your-project-id"
APPWRITE_DATABASE_ID="your-database-id"
```

### 3. Editor UI configuration

[](#3-editor-ui-configuration)

By default, users compose messages with a clean, native auto-expanding textarea. If you want rich text formatting (bold, italic, bullets, links) powered natively by Quill.js:

```
# "textarea" or "wysiwyg"
SIMPLE_CHAT_EDITOR=wysiwyg
```

### 4. Support Permissions &amp; Restrictions

[](#4-support-permissions--restrictions)

If you're using `SIMPLE_CHAT_MODE=support`, Laravel's authorization handles fine-grained actions. Update these in your `.env` or implement their defaults via your auth gating mechanics:

```
SIMPLE_CHAT_PERM_VIEW=view-tickets
SIMPLE_CHAT_PERM_ASSIGN=assign-tickets
SIMPLE_CHAT_PERM_REPLY=reply-ticket
SIMPLE_CHAT_PERM_CLOSE=close-ticket
SIMPLE_CHAT_PERM_DELETE=delete-ticket
SIMPLE_CHAT_PERM_VIEW_DELETED=view-deleted-tickets
SIMPLE_CHAT_MAX_TICKETS=3
SIMPLE_CHAT_DELETE_MODE=soft
```

### 5. Notification &amp; Audio Settings

[](#5-notification--audio-settings)

Granularly configure how users are alerted to new activity:

```
# --- Email Notifications ---
# Comma-separated list of emails for new ticket alerts
SIMPLE_CHAT_NOTIFY_EMAILS=support@example.com,admin@example.com
# Send an email notification for EVERY message received (Client  Support)
SIMPLE_CHAT_NOTIFY_EACH_MESSAGE=true

# --- Desktop Sound Notifications ---
# Enable/disable audio alerts in the browser
SIMPLE_CHAT_NOTIFY_SOUND=true
# URL to the notification sound file (remote URL or path relative to public/ if local)
SIMPLE_CHAT_NOTIFY_SOUND_URL="https://assets.mixkit.co/active_storage/sfx/2354/2354-preview.mp3"
# URL type: "url" (remote) or "local" (asset helper)
SIMPLE_CHAT_NOTIFY_SOUND_TYPE=url
# Play mode: "inactive" (only when window is hidden/blurred) or "always"
SIMPLE_CHAT_NOTIFY_SOUND_MODE=inactive
```

---

Overriding Views and Customization
----------------------------------

[](#overriding-views-and-customization)

By publishing the internal views, you will find fully exposed responsive Blade views at `resources/views/vendor/simple-chat`.

If you just want to tweak basic themes and copies, use the primary unified `config/simple-chat.php` configuration blocks:

```
'titles' => [
    'index' => 'Messages',
    'create' => 'Start a Conversation',
    'show' => 'Conversation',
],

'theme' => [
    'primary_color' => 'bg-indigo-600',
    'primary_hover' => 'hover:bg-indigo-700',
    'primary_text' => 'text-indigo-600',
    'primary_ring' => 'focus:ring-indigo-500',
    'primary_border' => 'focus:border-indigo-500',
    'secondary_bg' => 'bg-gray-50',
],
```

Using the Frontend Engine
-------------------------

[](#using-the-frontend-engine)

Head over to your configured application root route, natively set to `yourdomain.test/chat` right out of the box!

```
// Modifiable prefix inside config/simple-chat.php
'route_prefix' => 'chat',
```

Enjoy building scalable chat systems swiftly!

---

Future Implementations Roadmap
------------------------------

[](#future-implementations-roadmap)

We are continuously working to expand the package's capabilities. Planned features for future versions include:

1. **Pusher/Laravel WebSockets Integration:** Enabling native real-time broadcasting without relying solely on Appwrite/Supabase SDKs. ⏳
2. **File &amp; Media Attachments:** Securely sharing images, PDFs, or code snippets directly within a chat thread.
3. **Read Receipts:** Visual indicators tracking when a user or assigned agent has viewed the latest message block.
4. **Agent Dashboard Matrix:** A dedicated, robust UI component with quick status filters (Open, Closed, Unassigned, Mine) to bolster helpdesk task management for support teams. ✅

---

License
-------

[](#license)

[MIT License](LICENSE)

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance88

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

11

Last Release

61d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/21016b164a582bd7c6070fa304d1c88b4b8a8a358c24d5ee6ac06f9b3196a43e?d=identicon)[ambrose0012](/maintainers/ambrose0012)

---

Top Contributors

[![ambrosethebuild](https://avatars.githubusercontent.com/u/11048468?v=4)](https://github.com/ambrosethebuild "ambrosethebuild (26 commits)")

### Embed Badge

![Health badge](/badges/ambrosethebuild-simple-chat/health.svg)

```
[![Health](https://phpackages.com/badges/ambrosethebuild-simple-chat/health.svg)](https://phpackages.com/packages/ambrosethebuild-simple-chat)
```

###  Alternatives

[livewire/livewire

A front-end framework for Laravel.

23.5k75.5M1.8k](/packages/livewire-livewire)[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[laravel/cashier

Laravel Cashier provides an expressive, fluent interface to Stripe's subscription billing services.

2.5k25.9M107](/packages/laravel-cashier)[laravel/scout

Laravel Scout provides a driver based solution to searching your Eloquent models.

1.7k49.4M479](/packages/laravel-scout)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k12.1M99](/packages/laravel-pulse)[laravel/pennant

A simple, lightweight library for managing feature flags.

57311.1M53](/packages/laravel-pennant)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
