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.
Launch sale

Live, Video & Audio apps for Invision Community 5

Live and streaming applications for Invision Community 5 — realtime presence and typing, live topics, live video via Twitch, YouTube or your own MediaMTX server, and a complete podcast platform with a compliant RSS feed.

11 files

  1. A music library your members can add to, and a live station page that shows what is on air right now. One application, because a community that has a radio station usually has an archive as well, and running two add-ons that do not know about each other is how you end up with neither.
    The library
    Releases live in categories you set up, each with artwork, an artist, a year, a genre and a track list. Members open a release and play a track straight from the page — no download, no separate player, no leaving the community.
    Tracks are playable by click or keyboard, and the list rolls on to the next one the way a record does. Releases are proper Invision Community content: search, tags, comments, reactions, follows, moderation, reports and the activity stream all work because it is built on the same foundation as your forums. Optionally start a discussion topic for every release, so the conversation happens where people already are. Members can add music, on your terms
    Four separate gates decide who may upload: the master switch, a per-group permission, the category, and your own moderation queue. Turn uploads off entirely and only staff add music — everything already added stays exactly where it is.
    Tags are read from the files themselves
    Upload an MP3, FLAC, M4A or OGG and the title, artist, track number, length and embedded cover art are filled in from the file. Whatever the member typed always wins; the file only fills the blanks.
    No external tools, no shell access, no extra PHP extensions. The tag reader is part of the application. It does not shell out to ffprobe, it does not need getID3, and it works on shared hosting where you cannot install anything.
    The station
    Point Music at your stream and the station page shows what is playing right now — artwork, artist, title, the live listener count, and recently played.
    Works with AzuraCast, Icecast and SHOUTcast. AzuraCast needs no API key unless you have closed off its public endpoint. It knows the difference between a real DJ and the AutoDJ, and says so — a live badge with the presenter's name when somebody is actually on the decks. Recently played survives quiet spells. Icecast and SHOUTcast publish no history at all and AzuraCast often returns none, so Music keeps its own airplay log and shows that instead of an empty box. A Test button in the AdminCP asks your station and reports exactly what came back, so “the page is blank” is answerable without guessing between the address, a firewall and the station being off air. A player that follows people around your community
    A small dock sits at the foot of every page with the station playing in it. Members can hide it, and it stays hidden.
    Being straight with you about one thing. Invision Community loads a whole new page on every click, which stops any audio element on it. Nothing short of turning your community into a single-page application changes that, and that would break far more than it fixed.
    So the dock reconnects on the next page rather than pretending to play through the click — and there is a pop-out window for anyone who wants the music to genuinely keep going while they read. Both ship. Neither is oversold.
    Built to leave running
    One check per interval, shared by everybody. Fifty members on the station page is one request to your radio server, not fifty — the difference between a working setup and being rate-limited off your own stream. Every call to your station is capped at four seconds and every failure becomes a plain “not answering”. A station that goes down costs a page load a moment, never an error. Uploads go through Invision Community's own file storage, so Amazon S3 and other storage methods work, including moving existing music to them later. The airplay log trims itself. There is nothing to remember to prune. What you need
    For the library, nothing at all — install it and it works. For the station, the address of an AzuraCast, Icecast or SHOUTcast server. The setup guide walks through all three, and the library is entirely usable without a station if you never intend to broadcast.
    • 60.00 USD
  2. Chat Bundle
    Chat and Chat Calls together — messages, rooms, and voice and video calling, all on your own server.
    $135 instead of $160 bought separately, and $50 every six months instead of $60. The same two applications, the same files, one purchase.
    What you get
    ApplicationWhat it doesOn its own ChatA launcher on every page. Private messages, public rooms, invite-only private rooms, typing indicators, images and files, moderation.$95 + $35/6mo Chat CallsVoice and video calling from any one-to-one conversation. Peer to peer, never recorded, never through your server.$65 + $25/6mo Also included: a ready-made coturn setup for calls, which is the part most people would otherwise spend an afternoon on.
    Why they are sold together
    Calls are an add-on to Chat and do nothing without it. If you want calling at all, you need both — so this is simply the cheaper way to buy them.
    If you only want text chat, buy Chat on its own. Nothing here is held back from it.
    Requirements
    Invision Community 5 Realtime, with a current gateway. The gateway is free and has its own listing. HTTPS, for calls — browsers refuse microphone and camera access on an insecure page. A TURN server for calls. The setup is included and takes about ten minutes. Worth knowing before you buy
    Calling is one to one in this version. Group calling needs a different piece of server software with real processing cost, and is planned rather than promised. Chat needs a live connection. There is no polling fallback, deliberately — a chat that refreshes every thirty seconds is a slow forum, not a chat. Without Realtime connected the launcher does not appear at all. Nothing leaves your server. No third-party chat service, no per-message pricing, no monthly bill that grows with your community.
    • 135.00 USD
  3. Chat
    A chat launcher on every page of your community. Members message each other privately, join public rooms, or start invite-only rooms of their own — without leaving the page they were reading.
    It runs on your own server, over your own WebSocket. There is no third-party chat service in the loop, no per-message pricing, and no monthly bill that grows with your community.
    What members get
    A launcher that is always there. Bottom corner of every page, with an unread count. Open it and their conversations and rooms are right there. Private messages. One to one, with history. Start one from the list of who is online. Public rooms. You create these in the AdminCP and choose which groups may enter. Private rooms. Invite-only, owned by whoever made them. Give a group permission to create their own, or keep it to staff. Typing indicators, so a conversation has a rhythm rather than a series of surprises. Images and files. Pictures appear inline; documents arrive as a labelled link. It works on a phone. The floating window becomes a full-screen panel rather than a postage stamp. What you get
    Per-group permissions. Who can use chat at all, and who can create rooms. Off for every group until you say otherwise. Moderation. A "Can moderate chat" permission that reaches every room, including private ones. Delete anything, mute anyone. Room owners manage their own. Invite, remove and mute inside a room they created — and nothing outside it. Attachments live where your files live. S3, R2, Backblaze, FTP, or local disk. Whatever you have already configured. Core's ignore list is honoured, in both directions. Members browsing anonymously are never listed. They asked not to be seen. Private by construction
    Every channel a browser is allowed to listen on is decided by your server and cryptographically signed. The WebSocket gateway verifies that signature and knows nothing about rooms or permissions — so there is only ever one copy of the rules.
    That applies to public rooms as much as private ones. It would be simpler to let the gateway wave through anything that looks like a room, but the same shortcut would wave through a private room to anybody who guessed a number. It does not.
    Requirements
    Invision Community 5 Realtime, installed and connected, with its gateway deployed Audio and video
    Voice and video calling is a separate add-on, sold on its own or bundled with this. Chat ships the extension points it needs, so installing the add-on makes a call button appear — and not installing it leaves no trace of a missing feature.
    • 95.00 USD
  4. Live Notifications
    Invision Community only checks for notifications when a member opens the notification menu. Anything that happens while they are reading a page — a reply to their topic, a mention, a quote — sits there unseen until they navigate or reload.
    Live Notifications shows it at the time. A small toast slides in at the corner of the page, the bell count updates to match, and the member carries on reading.
    What it does
    Notifications appear as they happen. No reload, no navigation, no waiting for the member to go looking. The bell stays honest. The counter in the header is updated from the same figure, so the badge and the menu can never disagree. It reads like a notification, not an advert. A photo, one line of text, and a dismiss button. It fades after a few seconds, and hovering it stops the clock so nobody loses a message they were mid-way through reading. Click to go straight there. The toast is a link to whatever caused it. Optional chime. Off by default. When switched on it is a short two-note tone generated in the browser — nothing to download, and nothing to host. Instant with Realtime, still useful without it
    Installed alongside Realtime, notifications arrive over the existing WebSocket the moment they are sent — typically inside a few seconds, with no polling at all.
    Without Realtime the application still works. It falls back to a light periodic check on an interval you set, so members see notifications while they read rather than only when they go looking. The AdminCP tells you plainly which of the two is happening, rather than leaving you to guess.
    Built to stay out of the way
    Nothing is loaded for guests. A signed-out visitor gets no extra script at all. A background tab is never polled. Members with twelve tabs open do not generate twelve times the traffic. Members on a live connection are never polled at all. Reduced-motion preferences are honoured, and the toast is announced politely to screen readers rather than interrupting mid-sentence. Light and dark are both handled. Private by construction
    The live message that reaches a browser contains nothing — no title, no author, no link. It says only "look again". The notification itself is then fetched through Invision's own permission-checked endpoint, so a member can never be pushed something they are not allowed to read, even if a channel were somehow joined by the wrong person.
    Each member listens on their own channel, and the permission to join it is cryptographically signed by your server for that one member. There is no shared feed to eavesdrop on.
    Requirements
    Invision Community 5 Optional: Realtime (with its gateway deployed) for instant delivery. Without it, the fallback check is used instead.
    • 25.00 USD
  5. Chat Calls
    Voice and video calling for Chat. A call button appears in every one-to-one chat window; press it and the other person's browser rings.
    The audio and video go directly between the two browsers. They do not pass through your server, they are not recorded, and there is no per-minute charge from anybody.
    What it does
    Voice calls from any private conversation. Video calls, if you allow them — your own camera in the corner, theirs filling the panel. Ring, answer, decline, with the caller told which of those happened rather than left listening. Busy handling — someone already on a call is not interrupted, and the caller is told why. No answer times out instead of ringing forever. Per-group permission. Off for every group until you turn it on. Works on a phone. It bolts on — it does not modify Chat
    This installs as its own application and attaches through the extension points Chat publishes. Install it and the call buttons appear. Remove it and they disappear, with no trace of a missing feature and nothing edited in Chat itself.
    It also needs no change to your Realtime gateway. Two people in a conversation are already connected to it, so the call sets itself up over the connection they have.
    Requirements
    Invision Community 5 Chat — this is an add-on to it and does nothing on its own Realtime, which Chat already requires HTTPS. Browsers refuse microphone and camera access on an insecure page. This is not negotiable and not something an application can work around. A TURN server — see below You will want a TURN server, and here is the honest reason why.
    Roughly a third of real connections cannot go directly between two browsers, because of how home and office networks are configured. Those calls need a relay, and that relay is TURN.
    Without one, calling will look like it works. You will test it, it will connect, and you will ship it — because the two people testing are almost always on the same network, which is the case that always works. It will then fail for a meaningful share of your members, and the reports you get will say "it just doesn't connect" with nothing to go on.
    The download includes a ready-made coturn setup — a compose file and a configuration file with the three values you need to change marked. It takes about ten minutes. The AdminCP tells you plainly whether one is configured.
    One to one, for now
    This version does two people. Group calling needs an entirely different piece of server software routing everybody's video to everybody else, with real processing and bandwidth cost on your machine. That is planned as a later version rather than promised here — a call quality problem you cannot fix is worse than a feature you do not have yet.
    Privacy
    Media is peer to peer and encrypted by the browser. Your server sees only the handful of small messages that set the call up, and stores none of them. Nothing is recorded anywhere, by design — there is no recording feature to switch off.
    TURN credentials are generated for one member and expire on their own, so a browser never holds a lasting key to your relay.
    • 65.00 USD
  6. Your community should not find out you were streaming afterwards. OnAir watches your channels and tells them the moment you go live.
    Three ways to stream
    Twitch — live status, the current title, and the viewer count. YouTube — live status and title. Your own server — point it at a MediaMTX instance on your VPS or dedicated box. No platform account, no third party, and nobody else's advertising in front of your members. Add as many channels as you like, in any mix. They can belong to you, to your staff, or to members you want to feature.
    Announced where people will see it
    Going live can post a topic in a forum you choose, with the player embedded in it, so the conversation happens on your site rather than somewhere else. Followers are notified the way they already expect to be.
    A page, and a block
    A page listing whatever is on air right now with the stream playing inline, and the channels that are not. Plus a sidebar block for anywhere on your site.
    The block shows nothing at all when nobody is streaming, rather than sitting there permanently announcing that nobody is streaming.
    Works with Live Topics, if you have it
    If you also run Live Topics, going on air can open one automatically so people have somewhere to talk while they watch, and close it when the stream ends.
    Entirely optional. OnAir does not require Live Topics and never will. If it is not installed the setting is not offered, and everything else works exactly the same.
    Built to be left alone
    A platform having a bad minute is treated as unknown, never as offline — so a blip cannot end a broadcast that is still running and announce it all over again. YouTube is checked less often than the others on purpose. Its API charges heavily for the question, and polling it like the rest would exhaust a day's allowance before lunch and then report everything as offline. Nothing OnAir does can hold up a page load, even on a community with no cron job set up. What you need
    For Twitch, a free developer application. For YouTube, an API key. For your own server, a MediaMTX install and its address — the setup guide covers it. Use one, two, or all three.
    • 30.00 USD
  7. Run a podcast from your community, with a feed that Apple Podcasts, Spotify, Overcast and the rest will accept.
    The feed is the point
    A podcast is not a page with a play button on it — it is an RSS feed, and directories are unforgiving about the details. This gets them right: the iTunes namespace, owner verification, categories and artwork as attributes rather than text, episode and season numbers, episodic versus serial ordering, and enclosure lengths in real bytes so players can draw a scrub bar and seek properly.
    Episode identifiers are permanent and opaque. That sounds like a detail until you rename an episode with a feed that derives them from the title, and every subscriber's app re-downloads your entire back catalogue and sends them a notification for each one.
    Publish when you mean to
    Give an episode a future date and it stays out of the feed until then. Nothing reaches a subscriber early, because “early” means already downloaded. Drafts are invisible, and so are their pages — not merely unlinked.
    Every episode can have its own topic
    This is the thing a podcast host cannot do for you. Choose a forum and publishing an episode opens a topic for it, so the conversation happens with your members instead of in someone else's comment section. Optional, per show, and off unless you ask.
    On your site as well as in apps
    A page per show and per episode, with the browser's own audio player — which means keyboard control, playback speed, media keys and screen-reader support you would otherwise have to build and maintain. The feed is advertised in the page head, so a podcast app pointed at your show page finds it by itself.
    Details that save a support ticket
    Artwork is checked against Apple's size limits when you upload it, not months later when your show is rejected. Durations can be typed as 1:02:03, 62:03 or a number of seconds. Whichever your editor gave you is fine. The audio's real byte size and MIME type are read from the file rather than guessed. Deleting a show deletes its audio, so you are not paying to store episodes nothing references. What you need
    Somewhere to put the audio — your own uploads directory, or any file storage Invision Community is already configured to use, including S3-compatible object storage. No third-party podcast host, no monthly hosting fee, and the feed address is yours.
    • 35.00 USD
    • 1 Downloads
  8. Podcast Studio takes the shows you host with the Podcast app and gets them onto Apple Podcasts and Spotify — then keeps them fed with new episodes as fast as those platforms allow. No third-party host, no monthly fee, no juggling three tabs. Your community is the studio.
    Get onto Apple and Spotify, step by step
    A guided walk-through for each platform, one obvious action at a time: copy your feed address, submit it, get the code the platform emails you, confirm ownership, done. It tracks where each show stands on Apple and on Spotify separately, so you always know the next thing to do.
    Instant publishing, not “sometime today”
    Apple and Spotify re-check a feed on their own schedule, often hours apart. Podcast Studio advertises a WebSub hub on your feed and pings it the moment you publish, so directories that honour it — Apple among them — fetch the new episode in minutes instead. It is exactly how the big podcast hosts do “instant”, built into your community.
    Honest about the platforms. Neither Apple nor Spotify lets anyone push an episode into their apps directly — every host, this one included, publishes through your RSS feed. Podcast Studio makes that feed the fastest and cleanest it can be, and removes every manual step it is allowed to. What it will never do is promise a button that does not exist. Catch a rejection before it happens
    A show gets bounced by Apple for small, fixable reasons — no cover art, no owner email, an episode whose audio never finished uploading. Podcast Studio reads your show and its episodes and tells you, in plain language, exactly what would stop it, before you submit rather than days later when Apple emails you.
    It can read the verification code for you
    When Apple or Spotify emails the ownership code, Podcast Studio can fetch it out of the mailbox for you instead of you digging for it — optional, off by default, the mailbox opened read-only and the password stored encrypted. Prefer to paste it yourself? That box is always right there.
    Built to sit on Podcast
    Podcast Studio does not store a second copy of anything. Your shows, episodes and audio stay in the Podcast app; Studio is the layer that distributes and publishes them. Turn it off and your feeds carry on exactly as before — a lapsed copy never takes a live show down with it.
    What you need
    The Podcast app installed and enabled — that is the library Studio distributes. Everything else is built in; the default WebSub hub works out of the box, so there is nothing else to sign up for.
    • 49.00 USD
  9. Bring the "live" experience of the big platforms to your self-hosted community — without paying for a cloud subscription. Realtime makes topics feel alive: new posts appear the instant they're written, members can see who's in the room, and a typing indicator lets conversations flow like chat. It all runs on your own server, with no third-party service in the loop.
    Three features, one lightweight app
    ⚡ Live Topics — New replies and reactions arrive the moment they're posted. Instead of hammering refresh, members get a tasteful "3 new replies" bar that loads the latest with a tap.
    👀 Real-Time Viewing — A live "…is also here" presence pill sits by the topic title, showing who else is reading this very second. It turns a quiet thread into a room.
    ⌨️ Real-Time Typing — When someone starts writing a reply, everyone else sees a subtle "…is typing" indicator. Fewer duplicate posts, and the natural rhythm people expect from modern chat.
    Why members and admins love it
    Instant, no refresh over a persistent WebSocket connection
    Runs entirely on your infrastructure — no SaaS, no per-seat pricing, no data leaving your servers
    Never gets in the way — if the service is down, the community keeps working; realtime just pauses
    Upgrade-safe — listens to IPS content events, never edits core files
    Light on resources — a tiny Node.js process handling thousands of concurrent readers
    (Full version includes the "How it works", requirements, and "what's in the download" sections.)
    • 25.00 USD
    • 1 Purchases
    • 9 Downloads
  10. Live Topics — run a proper live event, and keep the topic afterwards
    Schedule a session. Attendees see a countdown. A host presses start and the room opens: video on one side, moderated questions in the middle, live chat alongside. When it ends, everything worth keeping becomes an ordinary forum topic.
    This is the feature Invision Community sells on its Cloud plans. It has never been available for self-hosted communities, and nobody else builds it.
    What Cloud charges for it. Live Topics is not included on the entry plan at all. The next tier up allows two events a month. Ten a month arrives at $259/month, and unlimited only at $619/month. This application has no quota. Run one a week or one a day; it is the same price.
    The room
    Video
    YouTube, Vimeo, Twitch, or a direct stream. Changeable mid-session, so a wrong link is not a disaster. Cloud supports YouTube only.
    Main Questions
    The curated stream. Sortable by newest or by what the room most wants answered.
    Chat
    The running conversation. A host can promote any message into a Main Question — which is also how they decide what survives.
    Three columns on a desktop, with a draggable divider. Tabs on a phone.
    What hosts and staff can actually do
    Promote a chat message into a Main Question. The good question always arrives in the chat, never in the right box.
    Close replies per question — to everyone, or to everyone but staff, so an answered question stops collecting "+1".
    Mark when a question was answered against the video position. The converted topic then deep-links to that moment.
    Approve questions or chat before they appear, when the session warrants it.
    Mute or remove one person without locking chat for everybody. Cloud has neither; its only controls are global.
    A staff-only channel where staff coordinate, and where reports arrive — during a live event nobody is watching the normal reports queue.
    Four things Cloud does not do
    Members can ask to be told when it starts. Cloud reminds the hosts and tells members nothing, so anyone who missed the start has to guess. Here anyone can opt in, and the notification fires when a host actually starts — which is the useful moment, since starting is manual.
    A live attendee count. Visible in the room and on the block, so a session looks alive.
    The chat can be kept. Cloud discards it outright. Keep it as one collapsed post at the end of the topic, or discard it — your call, per event.
    An AI recap. Optional. At conversion, the questions and answers are summarised into the opening post, so somebody arriving a week later gets the point without reading forty posts. Cloud produces no post-event artifact of any kind.
    It becomes a real topic
    Main Questions and their replies are written into your chosen forum as a normal topic, each question attributed to whoever asked it and timestamped when they asked. Searchable, quotable, moderatable — an ordinary topic in every respect.
    Real-time, without requiring anything
    This works on its own. Out of the box the room updates on a short timer, which is how every live-chat application on this marketplace works. If you also run my Realtime application, this detects it and upgrades to its WebSocket gateway automatically — no configuration, nothing to connect. A socket that drops falls back to timed refresh rather than going silent.
    Bounded on purpose
    A session ends itself when every host has left, after a grace period you set.
    A session ends itself at a maximum length you set. An abandoned room is a standing cost, and neither of these should depend on somebody remembering.
    Nothing is visible to anyone until a host presses start.
    What you control
    Who may schedule live topics, and who may moderate any of them
    Per event: hosts, staff groups, who may attend, approval rules, destination forum, whether the chat is kept
    Refresh interval, maximum length, host-absence grace period
    Whether recaps are written at all, and with which provider
    Requirements
    Invision Community 5.0 or newer (self-hosted), with the Forums application
    Optional: my Realtime application, for WebSocket delivery
    Optional: an Anthropic or OpenAI-compatible key for recaps — or my AI Assistant, whose key this will borrow
    No core files are edited. Upgrading Invision Community will not break it.
    • 85.00 USD
    • 1 Purchases
    • 7 Downloads
  11. Everything you need to run a podcast from your community and get it onto Apple Podcasts and Spotify — the Podcast app and Podcast Studio, together, for less than buying them apart.
    Buy the bundle and save against the two on their own. One purchase, both apps, one renewal. Podcast — host the show
    A feed Apple Podcasts, Spotify, Overcast and the rest will accept — the iTunes namespace, owner verification, categories and artwork done to spec. Permanent, opaque episode IDs, so renaming an episode never makes every subscriber re-download your back catalogue. Schedule episodes, keep drafts invisible, and give each episode its own forum topic so the conversation happens with your members. A page and the browser's own audio player per show and per episode. No third-party host, no monthly fee — the feed address is yours. Podcast Studio — publish and distribute it
    A guided walk-through to get each show onto Apple Podcasts and Spotify, tracking where every show stands on each. Instant publishing over WebSub: the moment you publish, directories that honour it — Apple among them — fetch the new episode in minutes instead of hours. A pre-flight check that tells you exactly what would get a show rejected before you submit it. It can read the ownership verification code out of your mailbox for you — optional, read-only, encrypted. What you need
    Invision Community 5. Install Podcast first, then Podcast Studio. Everything else is built in — no external service to sign up for.
    • 69.00 USD

Files

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.