Skip to content
View in the app

A better way to browse. Learn more.

ernestdefoe.online

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
ernestdefoe.online

Extensions, themes & support for Flarum and Invision Community

Vibe coding for the community web. Report a bug, request a feature, or dig into the source — this is where the tools you use get built, in the open.

We do custom Bespoke Invision Community apps. If you have an idea for something you want then use the contact form to get in touch with us.

OnAir for Flarum 2 — support and discussion

Featured Replies

  • Administrators
  • Community Expert

OnAir — Live Streaming for Flarum 2

License: MIT

Bring live video into your community. Members go live from YouTube or Twitch,

and a LIVE NOW badge follows their avatar everywhere it appears — posts, the

discussion list, mentions, the header, the sidebar.

OnAir — the LIVE badge follows a streamer's avatar everywhere, with a Live Now sidebar widget

Free / MIT. The optional premium add-on OnAir+

turns your forum into the whole platform — a built-in RTMP server (stream straight in

from OBS), in‑forum HLS playback, multistream, VOD, live chat, go‑live notifications and

scheduled streams. See the comparison below.

Features

  • 🔴 LIVE badge on every avatar — one Avatar override lights a streamer up everywhere.

  • ▶️ YouTube + Twitch embed viewer — paste a channel/video URL and go live.

  • 📡 Presence with graceful fallback — uses flarum/realtime for instant badge

    updates when installed, transparently falls back to lightweight polling when it isn't.

  • 🟥 Live Now widget + a /onair directory — see who's streaming at a glance.

  • 🔐 Permissions + admin settings — who can go live, default provider, poll interval.

  • ⏱️ Stale‑stream reaper — auto‑ends streams left running.

The Live directory

The /onair live directory listing everyone currently streaming

OnAir vs OnAir+

OnAir (this extension) is free and complete on its own for YouTube/Twitch streamers.

OnAir+ is a paid add‑on for communities that want to host streaming themselves.

| | OnAir (free) | OnAir+ |

|---|:---:|:---:|

| LIVE badge on avatar, everywhere | | |

| Live Now widget + /onair directory | | |

| YouTube embed viewer | | |

| Twitch embed viewer | | |

| Realtime presence + polling fallback | | |

| Permissions + admin settings | | |

| Auto‑end stale streams | | |

| Built‑in RTMP server → in‑forum HLS | — | |

| Stream keys + creator studio | — | |

| Multistream / restream to YouTube + Twitch | — | |

| VOD recordings | — | |

| Live chat overlay | — | |

| Go‑live notifications + follow a streamer | — | |

| Scheduled streams + reminders | — | |

| Concurrent viewer counts | — | |

OnAir+ — stream straight into the forum

Members broadcast from OBS to your own server; viewers watch an hls.js player inline,

with live chat beside it.

OnAir+ playing a live RTMP→HLS stream in the forum with the live chat panel

OnAir+ — creator studio

Each streamer gets an ingest URL, a secret stream key, multistream targets, and a one‑click

key reset.

OnAir+ streaming studio showing the ingest server, masked stream key and playback URL

Install

composer require ernestdefoe/onair

Then enable OnAir in the admin panel. Optionally install flarum/realtime for

instant (push) LIVE badges — OnAir detects it automatically. For self‑hosted streaming,

add OnAir+ (composer require ernestdefoe/onair-pro).

Development


npm install
npm run build      # or: npm run dev  (watch)```

A no‑backend concept render of the whole product lives in `preview/index.html`.

## Architecture notes

* **LIVE badge:** overrides the shared `Avatar` component (main‑bundle, safe to extend at

  init) and reads a serializer‑supplied `user.isLive()`.
* **Presence transport:** `app.onair.presence` picks `RealtimeTransport` when

  `flarum/realtime` is detected, else `PollingTransport`; both expose the same API.
* **Providers:** `app.onair.providers` (JS) + the `StreamProvider` interface (PHP) are the

  extension points **OnAir+** plugs its RTMP/HLS provider into.

## License

MIT © Ernestdefoe
  • Replies 3
  • Views 49
  • Created
  • Last Reply

Top Posters In This Topic

  • Administrators
  • Community Expert

onair v0.1.0

First public release of OnAir — live streaming for Flarum 2.

  • 🔴 LIVE badge that follows a streamer's avatar everywhere — posts, discussion list, mentions, header, sidebar
  • ▶️ YouTube + Twitch embed viewer; go live by pasting a URL
  • 🟥 Live Now sidebar widget + a /onair directory
  • 📡 Realtime presence with automatic polling fallback
  • 🔐 Permissions, admin settings, and an auto-end reaper for stale streams

Free / MIT. The OnAir+ add-on adds a built-in RTMP server, HLS playback, multistream, VOD, live chat, notifications and scheduled streams.

View release on GitHub

  • Administrators
  • Community Expert

onair v0.1.1

Floxum audit hardening (→ ≥95). Translator constructor-injection in StreamResource (no resolve()), discussionId set-guard now checks the discussion is visible to the actor, ProviderManager translator DI, service-provider boot(Dispatcher) instead of the event() global, and the stream-end failure now surfaces via app.alerts. Verified booting on a live Flarum 2 install.

View release on GitHub

  • 4 weeks later...
  • Administrators
  • Community Expert

onair v0.1.4

What's Changed

New: delete streams

  • The stream page now has a Delete stream button for the stream's owner and holders of the Manage / end others' streams permission — works on live and ended streams and removes the stream permanently. Previously there was no way to remove a stream from the UI.
  • The End/Delete buttons are driven by a new backend-computed canEdit capability, so moderators with onair.manage now see them too (they always had the backend permission).

Rolled up from v0.1.2–v0.1.3

  • Live Streams widget for Bespoke with inline stream previews, grid layout in wide zones.

Pairs with OnAir+ v0.1.3, which makes the past-streams page a public VOD directory with per-streamer filtering and recording deletion.

Full Changelog: https://github.com/ernestdefoe/onair/compare/v0.1.1...v0.1.4

View release on GitHub

  • Ernest Defoe changed the title to OnAir for Flarum 2
Guest
Reply to this topic...

Ask the developer directly

Every application here is supported by the person who built it. An account lets you post your question and get notified when it is answered.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.