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

@doxajs/keryx

v0.1.0-alpha.33

Published

Doxa's first-party authenticated WebSocket broadcasting server.

Readme

@doxajs/keryx

Controlled-adoption prerelease: Publicly downloadable under Apache-2.0; Midtown Home Improvements is the sole supported consumer. External use is permitted without compatibility, support, warranty, roadmap, or production-readiness commitments.

Keryx is Doxa's first-party authenticated WebSocket transport for broadcasting and registered ephemeral commands. It is an optional core module, not an application plugin or an application-owned provider.

pnpm doxa add keryx

The command enables framework.broadcasting, installs @doxajs/keryx and @doxajs/realtime, and generates the provider, environment contract, production port, internal worker publish URL, and Keryx readiness check. Application events continue to use ShouldBroadcast, ShouldBroadcastNow, and channels from @doxajs/core.

Production roles

doxa serve starts Keryx in the existing web process. doxa work starts no WebSocket listener and publishes through Keryx's signed internal HTTP endpoint. The generated Compose deployment wires that URL to http://web:6001; other platforms set DOXA_KERYX_PUBLISH_URL to their equivalent private web-service origin.

One web replica uses DOXA_KERYX_TOPOLOGY=single and does not need Redis. Multiple web replicas use:

DOXA_KERYX_TOPOLOGY=redis
DOXA_KERYX_REDIS_URL=redis://redis.internal:6379

Every role sharing publication authority must receive the same DOXA_KERYX_SECRET with at least 32 characters. Do not expose the internal publish URL or Redis publicly. Route browser WebSockets to /app on the Keryx port and include GET /ready in load-balancer readiness.

If the browser reaches Keryx on a different hostname from authenticated application HTTP, use the generated POST /broadcasting/authorize route. The route mints a 30-second, encrypted, origin-bound, single-use admission ticket. The realtime client presents that ticket in the WebSocket subprotocol offer, so production does not widen the Doxa session cookie to sibling subdomains or put credentials in a URL. In Redis topology, ticket consumption is atomic across web replicas.

Impersonated admissions preserve target actor, original initiator, and delegation audit context. Tickets never outlive delegation. Keryx closes expired admissions and revalidates sessions before inbound frames and during heartbeats, so stop or revocation cannot authorize later subscriptions or commands.

Keryx protocol v3 waits for Doxa authentication before emitting connected. It accepts only manifest-registered RealtimeCommand names, uses the admitted actor, and delegates throttling, schema validation, declared-ability authorization, deadlines, and safe acknowledgements to Doxa. Signed publication, bounded message-ID deduplication, admission tickets, Redis fanout, distributed presence leases, and backplane recovery are framework behavior; applications do not implement a backchannel.