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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@bossmodecg/core

v0.2.0

Published

The core server runtime for BossmodeCG.

Readme

BossmodeCG

BossmodeCG is a simple, highly-extensible core architecture designed to power visualization and computer graphics frontends for video streams. If you're looking for deep customization and integration with services across the spectrum for your live streams,BossmodeCG might just be the tool for you. Inspired by the fantastic NodeCG project, BossmodeCG focuses on ease of use and programmer friendliness to help make your streams awesome.

You can use BossmodeCG with:

  • OBS Studio
  • OBS Classic
  • XSplit
  • vMix
  • any other streaming solution that offers a browser/webpage overlay source

Please note: at present, OBS Studio 0.18.x and up are the primary targeted platform. OBS Studio tends to keep its browser plugin (a derivative of the Chromium browser) most up-to-date and it's the most reliable and performant HTML5 overlay choice. vMix is also generally very reliable--but if you're using vMix you're paying a bunch of money, you don't need me to tell you this.

Supported integrations and services

  • bossmodecg-module-example: A really simple demonstration service that just increments a counter based on some
  • bossmodecg-module-twitch: Twitch integration and alerts (messages, resubs, etc.).
  • bossmodecg-module-obs_studio: API for retrieving information from OBS Studio (scene transitions, dropped frames, etc.) and controlling some OBS actions through the obs-websocket system.
  • bossmodecg-module-simplestore: SimpleStore is a service that allows for global access to its state; your management system can just update a key and your graphics frontend can subscribe to state updates without having to write your own logic in BossmodeCG itself.

Planned future integrations

  • bossmodecg-module-streamtip: StreamTip integration for streamers to notify when viewers have put a couple bucks in the hat.
  • bossmodecg-module-extralife: Extra Life integration for user and team donation alerts.
  • bossmodecg-module-beam: Beam integration for chat, followers, etc.
  • bossmodecg-module-vmix: Integration with the vMix broadcasting suite.

The architecture

BossmodeCG is a simple client-server application and places few restrictions on what clients can actually do. In practice, however, clients are divided into frontend clients and management clients. Management clients provide all the bells and whistles you need to work with your stream (and maybe a few more besides, like the way the Twitch service can update the game currently being played on your channel), while frontend clients consume data and events coming back out of BossmodeCG to draw those overlays.

The easiest management tool is to leverage bossmodecg-manager, a React-based management tool. It's really easy to consume control panels for existing BossmodeCG services and write your own--most of the ones I end up writing for clients take maybe twenty minutes to write and I can be confident that they work!

Frontends are typically bespoke and are wholly decoupled from the BossmodeCG framework. Connect to BossmodeCG, hook into the events that your components care about, and you're off to the races. bossmodecg-example has a pretty good starting point available to you that uses modern ES6 and React to serve as a wrapper around Canvas. Building reusable components in either HTML5 or Canvas would be a great way to contribute to BossmodeCG!

Future work

  • Conservative state locking; right now, data races can conceivably occur inside a BossmodeCG module if multiple events need to write in quick succession. They're very unlikely (no more likely than any other NodeJS application that relies on nonblocking continuations), but I believe in bulletproof software and I want to patch this.