All Projects â†’ kitten â†’ spectacle-sync

kitten / spectacle-sync

Licence: other
💁 Present Spectacle presentations synchronised on multiple devices

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to spectacle-sync

vortex
Revolt voice server
Stars: ✭ 61 (+7.02%)
Mutual labels:  webrtc
WebRTCCTV
WebRTCCTV is a signaling server & webapp able to stream from RTSP cameras using WebRTC
Stars: ✭ 32 (-43.86%)
Mutual labels:  webrtc
onchat-web
A simple, beautiful, mobile-first instant messaging progressive web application.
Stars: ✭ 138 (+142.11%)
Mutual labels:  webrtc
blog
Algorithm,WebRTC,Node,Microservices,Golang,ELK,Kubernetes,Istio,JAVA,PHP,MongoDB,Ningx,OpenResty,GraphQL...
Stars: ✭ 19 (-66.67%)
Mutual labels:  webrtc
webrtc-build
様々おį’°åĒƒå‘けãŪ WebRTC ãŪビãƒŦãƒ‰ã‚’čĄŒãĢãĶ、そãŪバã‚Īナナを提äū›ã—ãĶいãūす
Stars: ✭ 128 (+124.56%)
Mutual labels:  webrtc
2019-09
TryCatch - 레큎레ėīė…˜ ęēŒėž„ "ëŠļėœžëĄœ 말í•īėš”"ė˜ ė˜Ļ띞ėļ ęēŒėž„ 🙆‍♀ïļ 💁 🙋
Stars: ✭ 18 (-68.42%)
Mutual labels:  webrtc
peerjs-python
Python port of PeerJS client
Stars: ✭ 56 (-1.75%)
Mutual labels:  webrtc
singo
Simple WebRTC Signaling Server written in Go
Stars: ✭ 57 (+0%)
Mutual labels:  webrtc
iota-ion.lib.js
IOTA ION Library - Fast data-troughput in the browser, supported by the IOTA tangle.
Stars: ✭ 28 (-50.88%)
Mutual labels:  webrtc
foxrtc
media sdk based on webrtc
Stars: ✭ 36 (-36.84%)
Mutual labels:  webrtc
app
Web metaverse client
Stars: ✭ 115 (+101.75%)
Mutual labels:  webrtc
gossip
An online user interface to efficiently author and delivery awesome and informative presentation. 🚀
Stars: ✭ 378 (+563.16%)
Mutual labels:  presentations
diorama
A set of React.js components to create easy en extendable presentations.
Stars: ✭ 17 (-70.18%)
Mutual labels:  presentations
meanOs
Mean Operating System - The first decentralized, artificially intelligent, MEAN.js stack, operating system. Mean OS is the only operating system hosted anonymous using a P2P network and a suite of non-standard in-browser delivery mechanisms. Mean OS proudly supports Brave and Tor, be free!
Stars: ✭ 62 (+8.77%)
Mutual labels:  webrtc
Study-Room
Connect and study together with friends over text and voice channels, over a click of a button. Web application for chat and audio streaming.
Stars: ✭ 21 (-63.16%)
Mutual labels:  webrtc
SkylinkSDK-iOS-Sample
Temasys SkylinkSDK for iOS - Sample App - Objective C
Stars: ✭ 16 (-71.93%)
Mutual labels:  webrtc
P2P-DPlayer
DPLayer powered by CDNBye P2P Engine
Stars: ✭ 63 (+10.53%)
Mutual labels:  webrtc
webtorrent-dht
This is an example implementation of something that might become WebTorrent DHT
Stars: ✭ 26 (-54.39%)
Mutual labels:  webrtc
client-sdk-js
LiveKit browser client SDK (javascript)
Stars: ✭ 114 (+100%)
Mutual labels:  webrtc
docker-jitsi-meet
Docker Jitsi Meet WebRTC conferencing system w/Prosody XMPP and s6 overlay
Stars: ✭ 66 (+15.79%)
Mutual labels:  webrtc

spectacle-sync

💁 Present Spectacle presentations synchronised on multiple devices.

  • You create a new session and share the token with your audience
  • Your viewers open the presentation and join the session
  • All viewers' browsers will connect to yours via WebRTC
  • Proceed to give the most stylish presentation imaginable ðŸ•ķ

You don't even need to start up another server! A signal server is already predeployed and WebRTC works P2P âœĻ

Demo

Getting Started

If you haven't set up your presentation you can use create-react-app to get started:

create-react-app my-presentation --scripts-version spectacle-scripts

Once you have your presentation, just install spectacle-sync from npm:

yarn add spectacle-sync

To add it to your presentation, all you need to do is to replace Spectacle's <Deck> with Spectacle Sync's <NetworkDeck>:

import React, { Component } from 'react';
import { Slide } from 'spectacle';

// Use this Deck instead of spectacle's:
import { NetworkDeck } from 'spectacle-sync';

export default class Presentation extends Component {
  render() {
    return (
      <NetworkDeck>
        <Slide>
          // ...
        </Slide>
      </NetworkDeck>
    );
  }
}

Then just start your app as usual and you will be greeted by the connection manager. There you can either enter a token that you've been given and join an existing session, or create a new one, which will generate a new token for you to share.

After you close the connection manager by clicking anywhere, you will find a small indicator on the bottom left, informing you of the status of the WebRTC connection(s).

How it works

When establishing a session a WebSocket connection is opened which by default connects to https://spectacle-signalling.now.sh. This server takes care of registering sessions and clients, and established the WebRTC peer to peer connections.

All of the viewers' browsers connect to the presenter's browser, which then proceeds to send Spectacle's local storage changes over the connection. Nice!

The signalling server is in this same repo under server/ and you can start your own if you want.

API

The only exposed component is the NetworkDeck component which accepts the following props additionally to the standad Spectacle Deck's props:

Name PropType Description
signalUri PropTypes.string Used to change the default signalling server
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].