PHPackages                             xddesigners/silverstripe-narrowcasting - 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. xddesigners/silverstripe-narrowcasting

ActiveSilverstripe-vendormodule

xddesigners/silverstripe-narrowcasting
======================================

Backend for narrowcasting applications running on RevealJS.

110PHP

Since Aug 6Pushed 5y agoCompare

[ Source](https://github.com/xddesigners/silverstripe-narrowcasting)[ Packagist](https://packagist.org/packages/xddesigners/silverstripe-narrowcasting)[ RSS](/packages/xddesigners-silverstripe-narrowcasting/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

SilverStripe Narrowcasting
==========================

[](#silverstripe-narrowcasting)

Backend for narrowcasting applications running on Reveal JS.

how to install
--------------

[](#how-to-install)

```
composer require xddesigners/silverstripe-narrowcasting
```

Customization
-------------

[](#customization)

Most of the Reveal JS settings are exposed trough the CMS and can be configured in the SiteConfig. These global settings are inherited by each presentation where you can overwrite these settings as desired.

This module adds the Reveal JS dependency. The added script also checks if the presentation was altered each cycle by fetching the last edit datetime and presentation id. If the presentation was changed it forces a reload.

If you want to hook onto the Reveal JS instance you can access this trough `window.Reveal`.

```
const Reveal = window.Reveal;
Reveal.addEventListener('slidechanged', function(event) {
  // do things on slidechanged
});
```

If you want to include your own instance of Reveal JS you can block the requirements trough the config:

```
XD\Narrowcasting\Controller\DisplayController:
  include_requirements: false
```

You can inject your own js/css by extending the `XD\Narrowcasting\Controller\DisplayController` class:

```
class DisplayControllerExtension extends Extension
{
    public function onAfterInit()
    {
        Requirements::javascript(project() . '/client/dist/js/app.js');
        Requirements::css(project() . '/client/dist/styles/app.css');
    }
}
```

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity32

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/6131c03b7f5ba6b10fef192c90d68d57508e84c007a13321df6960b8298e19d1?d=identicon)[TheBnl](/maintainers/TheBnl)

---

Top Contributors

[![RVXD](https://avatars.githubusercontent.com/u/1586761?v=4)](https://github.com/RVXD "RVXD (1 commits)")

### Embed Badge

![Health badge](/badges/xddesigners-silverstripe-narrowcasting/health.svg)

```
[![Health](https://phpackages.com/badges/xddesigners-silverstripe-narrowcasting/health.svg)](https://phpackages.com/packages/xddesigners-silverstripe-narrowcasting)
```

PHPackages © 2026

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