PHPackages                             binary-cats/shoutout - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. binary-cats/shoutout

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

binary-cats/shoutout
====================

An inspirational title for your toasts

1.1.0(2mo ago)04MITPHPPHP ^8.3CI passing

Since Jan 24Pushed 1mo agoCompare

[ Source](https://github.com/binary-cats/shoutout)[ Packagist](https://packagist.org/packages/binary-cats/shoutout)[ Docs](https://github.com/binary-cats/shoutout)[ GitHub Sponsors]()[ RSS](/packages/binary-cats-shoutout/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (24)Versions (4)Used By (0)

[![](https://camo.githubusercontent.com/393a9306328058caa157cd4162e7260c256223c10c967790c52ba5cb0f682642/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f53686f75746f75742e706e673f7468656d653d6c69676874267061636b6167654d616e616765723d636f6d706f7365722b72657175697265267061636b6167654e616d653d62696e6172792d6361747325324673686f75746f7574267061747465726e3d746f706f677261706879267374796c653d7374796c655f31266465736372697074696f6e3d52656e6465722b696e737069726174696f6e616c2b746f6173742b7469746c6573266d643d312673686f7757617465726d61726b3d3126666f6e7453697a653d313030707826696d616765733d68747470732533412532462532466c61726176656c2e636f6d253246696d672532466c6f676f6d61726b2e6d696e2e737667)](https://camo.githubusercontent.com/393a9306328058caa157cd4162e7260c256223c10c967790c52ba5cb0f682642/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f53686f75746f75742e706e673f7468656d653d6c69676874267061636b6167654d616e616765723d636f6d706f7365722b72657175697265267061636b6167654e616d653d62696e6172792d6361747325324673686f75746f7574267061747465726e3d746f706f677261706879267374796c653d7374796c655f31266465736372697074696f6e3d52656e6465722b696e737069726174696f6e616c2b746f6173742b7469746c6573266d643d312673686f7757617465726d61726b3d3126666f6e7453697a653d313030707826696d616765733d68747470732533412532462532466c61726176656c2e636f6d253246696d672532466c6f676f6d61726b2e6d696e2e737667)

Shoutout
========

[](#shoutout)

[![Latest Version on Packagist](https://camo.githubusercontent.com/d70cbc9c765154eb4b8a3daf3cd4df38f5eb4f5ed36d608774fca3e2884e8716/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f62696e6172792d636174732f73686f75746f75742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/binary-cats/shoutout)[![GitHub Tests Action Status](https://camo.githubusercontent.com/6b5ebe724e1ea01b541a24ee43b0bce0ff37ed7878e8750506b4d38384e0efd7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f62696e6172792d636174732f73686f75746f75742f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/binary-cats/shoutout/actions?query=workflow%3Arun-tests+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/12bd8ba46c32c8f284bf002f8d1fd4925fa33485df0a6f428dbb43a6457d6553/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f62696e6172792d636174732f73686f75746f75742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/binary-cats/shoutout)

Inspirational titles for your toasts.

Ever got stuck writing another title for your success toast? Ever got bored with "Success!" message? Shoutout solves this for you with random configurable messages

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

[](#installation)

```
composer require binary-cats/shoutout
```

You can publish the config file with:

```
php artisan vendor:publish --tag=shoutout-config
```

This will create `config/shoutout.php` where you can customize the titles for each notification type. This is the contents of the published config file:

```
return [

    /*
    |--------------------------------------------------------------------------
    | Default Message Type
    |--------------------------------------------------------------------------
    |
    | The default message type to use when calling Shoutout::random() without
    | specifying a type. Supported: "info", "success", "warning", "danger", "error"
    |
    */

    'default' => 'info',

    /*
    |--------------------------------------------------------------------------
    | Messages
    |--------------------------------------------------------------------------
    |
    | These titles will be randomly selected for toast notifications based
    | on their type. Feel free to customize these to match your app's tone.
    |
    */

    'messages' => [
        'info' => [
            'Just so you know...',
            'A quick heads-up',
            'No alarms, just info',
            'Keeping you in the loop',
            'For your consideration',
            'Minor detail, major impact',
            'Logged and loaded',
            'Nothing urgent',
            'All part of the plan',
            'Thought you might like to know',
            'Friendly little update',
        ],
        'success' => [
            'Achievement unlocked!',
            'Flawless execution',
            'Great success!',
            'Huzzah!',
            'Like a boss',
            'Nice!',
            'Smooth as butter!',
            'That\'s how it\'s done!',
            'Very nice!',
            'Victory dance initiated',
            'We made it!',
            'Well done!',
        ],
        'warning' => [
            'Watch out',
            'Careful now',
            'Hmm...',
            'Warning',
            'Hold up',
            'Attention',
            'Heads up',
        ],
        'danger' => [
            'Oh well',
            'Not good',
        ],
        'error' => [
            'Oops',
            'Oh no',
            'Yikes',
            'Error',
            'So sad',
            'Uh oh!',
        ],
    ],
];
```

Usage
-----

[](#usage)

Shoutout comes in two flavors. You can use a `Shoutout` facade or a `shoutout()` helper method:

```
use BinaryCats\Shoutout\Facades\Shoutout;

// Get a random title using the default type (configured in config)
$title = Shoutout::random();   // Uses 'info' set by default

// Get random titles by specific type
$successTitle = Shoutout::success();  // "Achievement unlocked!", "Nice!", etc.
$infoTitle = Shoutout::info();        // "Just so you know...", "A quick heads-up", etc.
$warningTitle = Shoutout::warning();  // "Watch out", "Careful now", etc.
$dangerTitle = Shoutout::danger();    // "Oh well", "Not good"
$errorTitle = Shoutout::error();      // "Oops", "Oh no", etc.
```

### Example with Toast Notifications

[](#example-with-toast-notifications)

```
// In a Controller
public function store(Request $request): RedirectResponse
{
    // ... save logic

    return redirect()
        ->route('posts.index')
        ->with('toast', [
            'type' => 'success',
            'title' => Shoutout::success(),
            'message' => 'Post created successfully!'
        ]);
}
```

or with [Livewire Flux](https://fluxui.dev/components/toast):

```
    Flux::toast(
        heading: Shoutout::success(),
        text: 'Your changes have been saved.',
        variant: 'success',
    );
```

.. you get the idea.

Testing
-------

[](#testing)

Shoutout provides a test fake:

```
use BinaryCats\Shoutout\Facades\Shoutout;

public function test_it_shows_success_toast(): void
{
    Shoutout::fake()
        ->expect('success')
        ->andReturn('Test Success');

    $response = $this->post('/posts', ['title' => 'Test']);

    $response->assertSessionHas('toast.title', 'Test Success');
}
```

You can chain fake expectations:

```
Shoutout::fake()
    ->expect('success')->andReturn('Yay!')
    ->expect('danger')->andReturn('Oh no!')
    ->expect('error')->andReturn('Failed!');
```

If no expectation is set for a method, the fake will return a random value from config (same as the real implementation).

Changelog
---------

[](#changelog)

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

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

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

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

[](#security-vulnerabilities)

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

Credits
-------

[](#credits)

- [Cyrill N Kalita](https://github.com/cyrillkalita)
- [All Contributors](../../contributors)

Support us
----------

[](#support-us)

[Binary Cats](https://binarycats.dev) is a webdesign agency based in Illinois, US.

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance89

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 62.5% 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 ~54 days

Total

2

Last Release

60d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ebb48367388b4368b14cca42714bb13002d7414d9dc8da19c5490ef65c059719?d=identicon)[cyrill.kalita@gmail.com](/maintainers/cyrill.kalita@gmail.com)

---

Top Contributors

[![cyrillkalita](https://avatars.githubusercontent.com/u/2401848?v=4)](https://github.com/cyrillkalita "cyrillkalita (5 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")

---

Tags

laraveltoastbinary-catsshoutout

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/binary-cats-shoutout/health.svg)

```
[![Health](https://phpackages.com/badges/binary-cats-shoutout/health.svg)](https://phpackages.com/packages/binary-cats-shoutout)
```

###  Alternatives

[spatie/laravel-data

Create unified resources and data transfer objects

1.8k28.9M627](/packages/spatie-laravel-data)[spatie/laravel-livewire-wizard

Build wizards using Livewire

4061.0M4](/packages/spatie-laravel-livewire-wizard)[hirethunk/verbs

An event sourcing package that feels nice.

513162.9k6](/packages/hirethunk-verbs)[worksome/exchange

Check Exchange Rates for any currency in Laravel.

123544.7k](/packages/worksome-exchange)[ralphjsmit/livewire-urls

Get the previous and current url in Livewire.

82270.3k4](/packages/ralphjsmit-livewire-urls)[hydrat/filament-table-layout-toggle

Filament plugin adding a toggle button to tables, allowing user to switch between Grid and Table layouts.

6292.3k1](/packages/hydrat-filament-table-layout-toggle)

PHPackages © 2026

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