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

@vttforge/dev-module

v0.2.5

Published

Foundry-side companion for vttforge dev. Applies CSS, template and language changes in place, without a page reload.

Readme

@vttforge/dev-module

The Foundry side of vttforge dev. It applies stylesheet, template and language changes to a running world without a page reload.

Development only. It opens a socket to your machine and applies whatever arrives, so keep it out of a world holding real data.

Why it exists

Foundry can hot reload on its own, but only when the server is started with the right flag and the files sit where its watcher looks. vttforge dev builds with Vite instead, so the files Foundry serves are build output that its watcher never sees.

This module delivers the changes itself: vttforge dev pushes a payload per changed file, and this end applies it.

What it does with each file

| Extension | Effect | | --- | --- | | css | Swaps the stylesheet in place | | hbs, html | Recompiles the template and re-renders open windows | | json | Merges a language file, if it is one you are viewing |

The module ignores anything else: the watcher may cover more file types than this module can apply without a reload.

Vetoing a reload

The hotReload hook fires before anything is applied, exactly as Foundry's own does. Returning false cancels it:

Hooks.on('hotReload', (data) => {
  if (data.extension === 'css') return false;
});

Pointing it somewhere else

It connects to ws://localhost:31313, or to host.docker.internal when Foundry is not served from a local address, so a containerised Foundry can reach the CLI on your machine. To override:

globalThis.VTTFORGE_DEV_SERVER_URL = 'ws://192.168.1.10:31313';

Expect the connection to drop: the CLI stops between runs. Reconnection backs off.