npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

spectacle-sync

v1.2.0

Published

💁 Present Spectacle presentations synchronised on multiple devices

Downloads

15

Readme

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 |