PHPackages                             pushctl/pushctl-laravel - 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. pushctl/pushctl-laravel

ActiveLibrary

pushctl/pushctl-laravel
=======================

Push notifications for developers

v0.2.0(yesterday)07↑2900%MITPHPPHP ^8.3CI passing

Since Aug 14Pushed yesterdayCompare

[ Source](https://github.com/Pushctl/Pushctl-Laravel-SDK)[ Packagist](https://packagist.org/packages/pushctl/pushctl-laravel)[ Docs](https://github.com/Pushctl/Pushctl-Laravel-SDK)[ GitHub Sponsors](https://github.com/pushctl)[ RSS](/packages/pushctl-pushctl-laravel/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (11)Versions (2)Used By (0)

Pushctl Laravel Sdk
===================

[](#pushctl-laravel-sdk)

 [![Packagist](https://camo.githubusercontent.com/20fba3909f54256ecb1a83f9e7a13f0c8da5b776c07a91b348d6f5a849c2a7d4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7075736863746c2f7075736863746c2d6c61726176656c2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pushctl/pushctl-laravel) [![PHP from Packagist](https://camo.githubusercontent.com/7d5f874711650e02608e95583b6c155f21356e05192acd493d48de587ee62670/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f7075736863746c2f7075736863746c2d6c61726176656c2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pushctl/pushctl-laravel) [![Laravel versions](https://camo.githubusercontent.com/47b4afc7fadec6f71170a2e054b677cf804a597ac2906751325e1bf4a9eeab74/68747470733a2f2f62616467652e6c61726176656c2e636c6f75642f62616467652f7075736863746c2f7075736863746c2d6c61726176656c3f7374796c653d666c6174)](https://packagist.org/packages/pushctl/pushctl-laravel) [![GitHub Workflow Status (master)](https://camo.githubusercontent.com/f46cc0c5b9d176b4f7f3fab9ea68012f9c7e0a6e92dd7e0515df88c5de74b9c5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f5075736863746c2f5075736863746c2d4c61726176656c2d53444b2f74657374732e796d6c3f6272616e63683d6d6173746572266c6162656c3d5465737473267374796c653d666c61742d737175617265)](https://github.com/Pushctl/Pushctl-Laravel-SDK/actions) [![Total Downloads](https://camo.githubusercontent.com/edeba4037025dfc0cd217e20b9e02b89cdb54d3e12f4991d5261f6f711cd05d8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7075736863746c2f7075736863746c2d6c61726176656c2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pushctl/pushctl-laravel)

Push notifications for developers

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

[](#installation)

You can install the package via Composer:

```
composer require pushctl/pushctl-laravel
```

You may publish all of the package's resources at once:

```
php artisan vendor:publish --tag="pushctl"
```

Or, you may publish each resource individually:

### Publishing the Configuration File

[](#publishing-the-configuration-file)

```
php artisan vendor:publish --tag="pushctl-config"
```

Usage
-----

[](#usage)

Configure the Pushctl API URL and an application token with the `notifications:send` ability:

```
PUSHCTL_TOKEN=your-application-token
```

Add the Pushctl channel to a Laravel notification and return a fluent message from `toPushctl`:

```
use Pushctl\PushctlLaravel\Channels\PushctlChannel;
use Pushctl\PushctlLaravel\Messages\PushctlMessage;
use Illuminate\Notifications\Notification;

final class OrderReady extends Notification
{
    public function __construct(private readonly Order $order) {}

    public function via(object $notifiable): array
    {
        return [PushctlChannel::class];
    }

    public function toPushctl(object $notifiable): PushctlMessage
    {
        return PushctlMessage::create('Order ready', 'Your order is ready for collection.')
            ->actionUrl("myapp://orders/{$this->order->id}")
            ->with('order_id', $this->order->id)
            ->ttl(3600)
            ->priority('high')
            ->collapseId("order-{$this->order->id}");
    }
}
```

Route a notifiable model to its external Pushctl user ID. An array may be returned when one notification should target multiple external users.

```
use Illuminate\Notifications\Notification;

public function routeNotificationForPushctl(Notification $notification): string|array
{
    return $this->pushctl_user_id;
}
```

Pushctl supports visible and data-only messages. The builder also provides `imageUrl`, `data`, `sound`, `badge`, `androidChannelId`, `iosCategory`, `ios`, `android`, and `idempotencyKey` methods.

Messages can also be sent directly:

```
use Pushctl\PushctlLaravel\Pushctl;

app(Pushctl::class)->send(
    PushctlMessage::create('Hello')->with('context', 'welcome'),
    ['external-user-1', 'external-user-2'],
);
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Thank you for considering contributing to Pushctl Laravel Sdk! Please review our [contributing guide](.github/CONTRIBUTING.md) to get started.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](.github/SECURITY.md) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Pushctl](https://github.com/pushctl)
- [Flowgistics](https://flowgistics.nl)
- [All Contributors](../../contributors)

License
-------

[](#license)

Pushctl Laravel Sdk is open-sourced software licensed under the [MIT license](LICENSE.md).

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance100

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/315722670?v=4)[Pushctl](/maintainers/Pushctl)[@Pushctl](https://github.com/Pushctl)

---

Top Contributors

[![AmandoVledder](https://avatars.githubusercontent.com/u/15369884?v=4)](https://github.com/AmandoVledder "AmandoVledder (3 commits)")

---

Tags

laravelpushctlpushctl-laravel

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/pushctl-pushctl-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/pushctl-pushctl-laravel/health.svg)](https://phpackages.com/packages/pushctl-pushctl-laravel)
```

###  Alternatives

[laravel/cashier

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

2.6k31.8M158](/packages/laravel-cashier)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M354](/packages/psalm-plugin-laravel)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

79227.1M218](/packages/laravel-mcp)[defstudio/telegraph

A laravel facade to interact with Telegram Bots

818355.4k3](/packages/defstudio-telegraph)[api-platform/laravel

API Platform support for Laravel

58190.1k21](/packages/api-platform-laravel)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1239.7k25](/packages/fleetbase-core-api)

PHPackages © 2026

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