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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@cossistant/browser

v0.2.0

Published

Browser runtime and CDN embed for the Cossistant support widget.

Readme

Cossistant Browser Runtime

@cossistant/browser is the browser embed layer for the Cossistant support widget.

It stays intentionally thin:

  • @cossistant/core owns the runtime controller
  • @cossistant/react remains the single widget authoring surface
  • the embed bundle aliases React to Preact compat for smaller CDN assets

That means browser stays in lockstep with React by construction. When the React widget changes, the browser widget updates on the next browser build and release.

Package surfaces

  • Library/runtime entry:
    • mountSupportWidget()
  • CDN embed build:
    • loader.js
    • widget.js
    • widget.css

Browser embed characteristics

  • mounts into a ShadowRoot by default
  • injects widget.css into the shadow tree only
  • preserves --co-* and --co-theme-* custom-property theming
  • exposes window.Cossistant.init(), show(), hide(), toggle(), identify(), updateConfig(), destroy(), on(), and off()

CDN usage

Load the latest widget from the CDN with:

<script async src="https://cdn.cossistant.com/widget/latest/loader.js"></script>
<script>
  window.Cossistant.init({
    publicKey: "pk_live_..."
  });
</script>

The loader derives widget.js and widget.css from its own URL, so the versioned form works the same way:

<script async src="https://cdn.cossistant.com/widget/0.1.2/loader.js"></script>

Release model

  • @cossistant/browser is in the same Changesets fixed-version group as @cossistant/core and @cossistant/react
  • GitHub Actions builds and uploads versioned embed assets to S3 + CloudFront
  • the release workflow reuses the shared infra variables already used by app uploads:
    • S3_REGION
    • S3_BUCKET_NAME
    • S3_CDN_BASE_URL
    • AWS_ROLE_ARN
    • CLOUDFRONT_DISTRIBUTION_ID
  • immutable versioned assets and a latest/ alias are both published