Wiki Ninja is my shorthand for teaching Federated Wiki live, inside the wiki itself, without switching to Zoom. The trick is to use VDO.Ninja (formerly OBS.Ninja) to publish a low-latency WebRTC stream, then embed the viewer link in a Frame Plugin paragraph so it sits in a Lineup beside the page we are editing.
# View-only teaching setup
VDO.Ninja is URL-driven: you create a “push” link to publish your video, and a “view” link for your colleague to watch - docs.vdo.ninja ![]()
Those links act like capability URLs, which makes them a neat cultural fit for Federated Wiki: whoever has the link can see the stream, so treat it like a secret token.
Start with a one-way “view only” setup: I broadcast my ATEM Mini camera (and optionally my screen via a separate workflow), and my colleague just watches inside their wiki lineup. This avoids audio feedback loops and keeps the first session frictionless - docs.vdo.ninja ![]()
For teaching, the big win is low latency and simplicity. You can keep the wiki editing workflow visible in one panel and embed your live “teacher feed” in another panel - docs.vdo.ninja ![]()
# Step 1: Create a teacher “push” link Pick a stream id and a password (alphanumeric only). Example:
https://vdo.ninja/?push=STREAMID&password=PASS&webcam&autostart
This tells VDO.Ninja to publish a camera stream immediately once the device is ready, which is helpful when you are about to teach and do not want to click through setup prompts - docs.vdo.ninja ![]()
# Step 2: Create the student “view” link The viewer link is what you embed in the wiki:
https://vdo.ninja/?view=STREAMID&password=PASS&cleanoutput
Clean output hides most UI elements, which makes the stream feel like a native panel in a lineup rather than “a web site inside a web site” - docs.vdo.ninja ![]()
# Step 3: Embed in Federated Wiki On your colleague’s wiki, add a paragraph that uses the Frame Plugin and paste the view link into it. If we want tighter integration later, the Frame plugin also supports about-frame-integrations.
# Privacy and safety notes
Treat the view URL like a private invite link, because anyone who has it can watch. Adding &password helps, but operationally you still handle the link as a capability - docs.vdo.ninja ![]()
Keep everything on HTTPS when embedding, because modern browsers enforce secure-context rules for WebRTC and iframe behaviour - docs.vdo.ninja ![]()
# Common snags
If your colleague sees a blank panel, it is usually one of: wrong stream id, password mismatch, the teacher is not currently pushing, or the network is blocking peer-to-peer connectivity. VDO.Ninja documents advanced options and network workarounds if you hit the harder cases - docs.vdo.ninja ![]()
If you are trying to auto-start screen share, browsers will still require a manual confirmation click for choosing the screen source. For “Wiki Ninja”, the easiest path is to start with the ATEM camera view-only and add screen sharing once the basic flow is stable - docs.vdo.ninja ![]()
# Next steps after the first lesson
Once the view-only flow works, you can add a second panel for two-way talkback (either a second VDO.Ninja stream from your colleague, or a separate Jitsi panel), but the best first milestone is simply “teacher video embedded in the lineup next to the page we are editing.” - docs.vdo.ninja ![]()
If you later want a dedicated plugin, you can build a tiny “Wiki Ninja” plugin that renders an iframe and auto-adds safe defaults like cleanoutput, while still leaving the actual stream id and password in the paragraph text. If you go further, VDO.Ninja offers an iframe API so a plugin can detect join/disconnect events and show a friendly status badge in the wiki panel - docs.vdo.ninja ![]()
# See - Two Way Ninja - Wiki Ninja Html - Ninja Class Size - Ninja PermaID