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

watch-tizenbrew

v1.0.1

Published

TizenBrew wrapper for the self-hosted Watch app (watch.macr0.dev)

Readme

Watch — TizenBrew wrapper

The September 20 TV update adds a full-width hero, red focus, smoother navigation, explicit input editing and Live TV channel zapping. Relaunch Watch for the hosted UI update. Update the TizenBrew module to 1.0.1 to ensure Channel Up/Down are registered before the hosted app opens. The hosted client also attempts key registration when Tizen exposes its API there.

Live TV: choose country/category, select Save country & category, then Watch live. CH+/CH− change channels within that lineup. Return closes an open menu first, then returns to the guide. See TV update and validation notes.

A tiny TizenBrew app module that launches the self-hosted Watch app (watch.macr0.dev) full-screen on a Samsung TV, registers the remote's media keys, and forces the TV-safe playback path.

It is intentionally thin: it just opens the hosted web app. All the real code lives in the main project — this only makes it a launchable TV app instead of a URL you type into the TV browser.

Why the wrapper (vs. just opening the site in the TV browser)

  • Forces proxied playback. It appends ?wrapper=tizen, which tells the app to fetch every stream through the server proxy. The Samsung TV browser's TLS fingerprint gets fed corrupt segments by hoster CDNs (VOE/cloudwindow) — the endless "Recovering playback…" loop — so the app must never fetch them directly on a TV.
  • Always fresh. A cache-buster on launch means the TV can't get stuck on an old cached build.
  • Real app UX. Full-screen, app icon, no browser chrome or URL bar, and the remote's Back button steps back through screens and asks before leaving Home. More also offers Exit Watch. Hosted pages may not expose native exit APIs; the prompt shows hardware-exit instructions when automatic closing is blocked.

Install (TizenBrew)

TizenBrew loads modules from npm by package name.

  1. Publish this folder as an npm package (from inside tizen/):

    cd tizen
    npm publish --access public

    (Bump version in package.json each time you republish. If you prefer a scoped name, set e.g. "name": "@yourname/watch-tizenbrew".)

  2. On the TV, open TizenBrew → Add module and enter the package name (watch-tizenbrew, or your scoped name). Launch it.

To update later: npm version patch && npm publish, then in TizenBrew remove and re-add the module (or bump and reload).

Files

  • package.json — TizenBrew module manifest (packageType: "app").
  • app/index.html — loading splash + <meta refresh> fallback.
  • app/main.js — registers media keys and navigates to the hosted app.
  • icon.png — 512×512 app icon.

Notes / next steps

  • If a stream still fails to play inside the wrapper (same web engine as the browser), the next step is a native AVPlay player, which bypasses the web media pipeline entirely. That needs on-device iteration (no emulator here), so it's deliberately not in this first version.
  • The app already reads ?wrapper=tizen (see frontend/src/lib/platform.ts) to force proxy mode and enable TV Back-button navigation.