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

gawp

v0.3.4

Published

Node module to monitor the filesystem and reload the browser on a per-project basis, without browser plugins or additional javascript.

Readme

gawp

Node module to monitor the filesystem and reload the browser on a per-project basis, without browser plugins or additional javascript.

Install and run

Installing the package runs the monitor server as a background process, using the forever package. In future updates I plan on writing a script which creates a scheduled task (on Windows) or a cronjob (on Linux) which initialises the server on startup - until then, initialising the server has to be done manually after each restart, by running gawp.

Why?

To provide a super simple way for web developers to add live reloading to their projects, on a per-project basis, without having to modify any of the server code.

Other packages annoyed me because I didn't like:

  • Unnecessary dependencies incurring overhead (I have plans to prune the dependencies even further)
  • Learning esoteric syntax
  • Having to manipulate the server code for trivialities like changing monitor target directories

I just wanted a simple, centralised way to monitor and reload multiple projects concurrently, with possiblities to extend functionality later on.

Useage

Useage is simple - all you have to do is navigate to http://localhost:3000, which will open the gawp monitor panel:

http://localhost:3000 (gawp monitor)

Gawp Monitor Screen

For each gawper you specify its name, and the directory that you want to watch for changes on (generally the root directory for the static assets of a project).

The admin panel should be pretty straightforward, but here are a few tips just in case:

  • There will always be at least one gawper generated by the server, the "default" gawper (whose monitored path is the public folder in the gawp package's root directory). It can in essence never be deleted; but it can be overridden by one of your own.
  • "Deleting" gawpers from the admin panel only prepares them for deletion - you have to hit the commit button in the left pane to commit and save the changes to the gawp.json config file.
  • Referring to the above, hitting the revert all button will reenable all gawpers scheduled for deletion, essentially aborting the process.
  • Additionally any gawpers that have an empty "name" field will be scheduled for deletion automatically - so name them if you don't want to lose them!
  • Duplicate gawpers (gawpers with the same name) will be deleted top to bottom, meaning the last duplicate gawper in the list will remain.

Then you just have to reference one of your gawpers in the HTML you want to reload, using a <script> tag with the following signature (making sure the data-gawper attribute matches one of your gawper's names):

index.html (excerpt from <head>)

Notes

If you're that way inclined, feel free to add/remove gawpers manually by editing the gawp.json file in the root of the package directory - JUST BE SURE TO ESCAPE BACKSLASHES, OR REPLACE THEM WITH FORWARD SLASHES, OR IT'LL GO BANG.

gawp.json (example setup)