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

weathersoon

v1.0.3

Published

<p align="center"> <img src="screenshots/weathersoon-black.png" width="120" alt="WeatherSoon in black">&nbsp;&nbsp;&nbsp;&nbsp; <img src="screenshots/weathersoon-crimson.png" width="120" alt="WeatherSoon in crimson ink">&nbsp;&nbsp;&nbsp;&nbsp; <img

Readme

WeatherSoon

WeatherSoon is a Pebble Time 2 watchface based on Andrew Ford's Percival. This fork keeps the crisp, configurable accent-color spirit, but changes the face into a compact near-term weather dashboard for modern Rebble/Pebble use.

What Changed From Percival

  • Rebuilt the main layout around Pebble Time 2 / emery, with a large center clock and dense status rows.
  • Replaced the original configurable complication grid with a fixed glanceable dashboard:
    • top row: weekday, date, battery, and connection/quiet-time flags
    • middle row: heart rate and step count
    • bottom row: current hour plus the next two hours
  • Added hourly weather from Open-Meteo:
    • temperature
    • precipitation probability
    • UV index with color-coded badges
  • Added a Clay settings page for:
    • accent color
    • Paper vs Ink canvas mode
    • Fahrenheit vs Celsius
  • Swapped the old complication screenshot set for screenshots of the current UI in every supported accent color.
  • Added custom low-resolution drawing for the heart-rate icon and tighter Time 2 visual spacing.

The original Percival app listing is here: https://apps.repebble.com/2799cd581c2a4bbbade7f3da

Features

  • Pebble SDK 3 native watchface targeting emery
  • Live hourly forecast using phone geolocation and Open-Meteo
  • Weather cache in persistent storage so the face still has data after reloads
  • Configurable accent color and canvas mode
  • Health-service heart rate and step count
  • Color-coded semantic data:
    • red heart rate icon
    • blue precipitation percentages
    • green/orange/red UV risk badges

Build

pebble build
pebble install --emulator emery

For WSLg on this machine, the emulator needs software OpenGL:

LIBGL_ALWAYS_SOFTWARE=1 pebble install --emulator emery
LIBGL_ALWAYS_SOFTWARE=1 pebble screenshot --emulator emery --no-open screenshots/weathersoon-latest.png

Run pebble clean after adding or removing message keys in package.json; generated Pebble headers can otherwise go stale.

Screenshots

The checked-in screenshots are demo captures, generated from DEMO_MODE data in src/c/main.c. Normal builds should keep:

#define DEMO_MODE 0

To regenerate the gallery, temporarily set DEMO_MODE to 1, build and install once, then send PrimaryColor and Canvas settings to the emulator before each screenshot.

Project Structure

  • src/c/main.c: watchface UI, settings, persistent weather cache, health data, and AppMessage handling
  • src/pkjs/index.js: PebbleKit JS geolocation and Open-Meteo hourly forecast fetch
  • src/pkjs/config.js: Clay settings page
  • package.json: Pebble metadata, message keys, fonts, and image resources
  • screenshots/: README/demo captures for each supported accent color