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 🙏

© 2025 – Pkg Stats / Ryan Hefner

jigsaw-puzzle-tracker

v1.1.0

Published

Jigsaw Puzzle Tracker

Downloads

1

Readme

Jigsaw Puzzle Tracker

This is a quick utility for tracking progress while putting together a jigsaw puzzle, and sharing piece count, rate and a chart of you rate trend when streaming with OBS.

It uses ExpressJS and Google Charts library (which in turn uses Chromium and Puppeteer to generate charts). It has only been tested on Windows. Feel free to contibute improvements!

Getting Started

Installing

  • Install Node and npm
  • In a command prompt, create a directory to hold the application and change into it. We'll reference this as in these instructions.
    • mkdir c:\puzzle
    • cd c:\puzzle
  • npm install jigsaw-puzzle-tracker to install this app

Running

  • npx jigsaw-puzzle-tracker to start the local server (or npx jpt for less typing!)
  • Point your web browser to the URL shown on startup (For example, http://192.168.0.10:3333/ - but use the IP address of the PC you are running this on).
  • Recommend to open the page on a mobile device to keep it within easy reach of your puzzle!

Configuration

The first time you run the server, a file called config.json will be created in your local directory.

To make configuration changes, stop the server, edit the file, and restart the server. If you get an error on restart, the configuration file may have a syntax error. If you can't spot the errro, you can delete config.json and start over.

Options

  • chartBackgroundColor - Chart background color. Default is 'Black'
  • chartGridColor - Chart grid color. Default is 'DimGray'
  • chartLineColor - Chart line color. Default is 'PowderBlue'
  • chartTextColor - Chart axis text color. Default is 'White'
  • chartHeight - Chart height in pixels. Default is 120
  • chartWidth - Chart width in pixels. Default is 320
  • chartUpdateFrequency - Seconds between updating the trend chart. Default is 30
  • movingAverageMinutes - Timespan to use when calculating the piece placement rate. Default is 15
  • httpPort - Server listening port. Default is 3333
  • displayTemplate - Template to use for display test. Use \r\n for a newline. The following placeholders are recongnized:
    • _COUNT_ will be replaced by the current piece count.
    • _RATE_ will be replaced by the current rate. Default is: "Pieces placed: _COUNT_\r\n Pieces/hour: _RATE_\r\n"

Using OBS or SLOBS (optional)

  • Add a Text Source pointing to the file <APPDIR>/data/display.txt. Set the color and font as you wish.
  • Add an Image Source pointing to the file <APPDIR>/data/chart.png

NOTE: Sometimes when restarting OBS, it will update the Image Source to a cached file. If your chart is not updating, verify the file source is still correct.

Tracking your puzzle progress

Recommended method:

  • Each time you connect a single free piece to another, add 1 piece to the count
  • Each time you connect two free pieces to each other, add 2 pieces to the count
  • When connecting multiple pieces to mulitple pieces, DO NOT increment the count

Resetting for a different puzzle

  • Stop the App
  • Delete or rename the "data" directory. A fresh data directory will be created for the next puzzle.