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

@uptimizr/dashboard

v0.4.7

Published

Uptimizr analytics dashboard — a static-export SPA that reads the collector query API. Serve it standalone, all-in-one via the collector, or drop the assets on any static host.

Readme

@uptimizr/dashboard

The open-source analytics UI for Uptimizr — projects, sessions, heatmaps, and performance summaries for 3D scenes. Built with Next.js (App Router) + Tailwind CSS.

The dashboard reads only from the collector's query API (@uptimizr/collector-server); it never talks to ClickHouse/Postgres directly and stays within the OSS boundary.

Run it (three ways)

The dashboard's canonical artifact is a static export (out/) — the same built assets work against any collector URL, supplied at runtime in the in-UI connection bar (no rebuild per environment).

# Produce the static export once.
pnpm --filter @uptimizr/dashboard build:static   # emits oss/apps/dashboard/out
  1. Standalone server — serve the export on its own port (zero extra deps):

    npx -p @uptimizr/dashboard uptimizr-dashboard --port 3000   # or PORT / DASHBOARD_PORT
  2. All-in-one (collector-served) — one process for ingestion, query, and UI. Point the collector at the export and start it:

    COLLECTOR_DASHBOARD_DIR=./oss/apps/dashboard/out \
      npx -p @uptimizr/collector-server uptimizr serve
  3. Static drop-in — copy out/ to any static host / CDN / object store, or mount it in your own app. Deep links (/projects/:id/...) need an SPA fallback to index.html (the standalone server and collector do this for you).

Configure

By default the UI targets the origin it is served from; override the collector URL and API key live in the connection bar. For local dev you can pre-bake them:

# oss/apps/dashboard/.env.local
NEXT_PUBLIC_COLLECTOR_URL=http://localhost:4318
NEXT_PUBLIC_API_KEY=utk_...        # optional convenience for local dev

Other optional knobs:

  • Standalone static server: DASHBOARD_PORT / PORT and DASHBOARD_HOST.
  • Static export sub-path: NEXT_BASE_PATH (for embedded builds such as /dashboard).
  • Playground links: NEXT_PUBLIC_PLAYGROUND_URL (defaults to http://localhost:5173 locally).
  • Runtime panels: NEXT_PUBLIC_PANELS_MANIFEST_URL and NEXT_PUBLIC_PANELS_ALLOWED_ORIGINS.

Develop

pnpm --filter @uptimizr/dashboard dev     # http://localhost:3000

Build

pnpm --filter @uptimizr/dashboard build          # Next server build
pnpm --filter @uptimizr/dashboard build:static   # static export (out/)

Note: the build/build:static/start scripts pin NODE_ENV=production inline, so a stray exported NODE_ENV=development in your shell no longer crashes the prerender step. You don't need to unset NODE_ENV manually.

Current OSS surface

  • Project/session selection, live presence, and live event feed.
  • Registry-driven panels from @uptimizr/react: sessions, pointer/world/view-direction heatmaps, mesh and interaction leaderboards, funnels, paths, performance, diagnostics, XR summaries, and more.
  • Session detail with metadata/raw-event inspector, replay view, live-follow replay when the session is active, and first-person trajectory view.
  • Optional runtime/remote panels via NEXT_PUBLIC_PANELS_MANIFEST_URL.