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

lassie

v1.2.2

Published

A watchdog service

Readme

Lassie

Lassie is a simple watchdog service written in CoffeeScript. It sports a basic modular architecture that can host multiple types of service checks and alerts.

Lassie doesn't do any graphing or statistical collection. You probably want statsd+Graphite or Munin if you're looking for something like that. Lassie will notify you if a service goes down (and comes back up), nothing more.

Checks and Alerts

A few standard checks and alerts are included with Lassie. If you know Javascript or CoffeeScript, then it is easy to create your own checks and alerts.

Checks

  • ping: Basic ICMP echo request. A cheap and not-foolproof way of checking if a server is alive on a network. Note that a server can respond to pings but still be "down" in some sense, so this rarely a sufficient check by itself.
  • web: Retrieve a remote URL and look in the resulting payload for a specific fragment string. Can be useful to assess whether the payload is the expected body or whether it's an error message.
  • tcp: Similar to the web check, but uses a raw TCP connection.
  • rest: Retrieve a RESTful API endpoint and check if the HTTP status code was 200. If not, then it will be considered to be in a fail state.

Alerts

  • email: 'nuff said.
  • sms: Uses Twilio, so you will need an account with them.
  • slack: You'll need to create a Bot Integration within your Slack account and use the provided API token.
  • pushover: A SaaS product that sends push alerts to your phone. See their website for more details.

Example Configuration

options:
  # Check every X seconds
  check_frequency: 60

  # Run as a daemon
  daemon: true
  log:    lassie.log
  pid:    lassie.pid

  # Twilio API credentials
  twilio:
    sid:   TWILIO_SID
    token: TWILIO_TOKEN
    phnum: TWILIO_PHNUM   # outgoing phone number

  # Slack API token and target channels/users
  slack:
    token: SLACK_TOKEN
    channels:
      - 'monitoring'
    users:
      - 'judd'

#
# ALERTS LEVELS + CONTACTS
#
alerts:
  notify:
    admin-email:
      type:  email
      to: [email protected]
    team-chat:
      type: slack
      channels: ['monitoring']
  emerg:
    admin-sms:
      type:  sms
      phone: "+18001234567"
    admin-slack:
      type: slack
      users: ['judd']

#
# CHECKS
#
checks:
  server1:
    type:   ping
    host:   server1.example.com
    alerts: [emerg, notify]
  server2:
    type:   ping
    host:   server2.example.com
    alerts: [emerg]

  site-web:
    type:     web
    url:      http://www.example.com
    fragment: "This is an example site"
    # This check must fail twice in a row before we consider it down.
    failures: 2
    alerts:   [emerg, notify]

  site-api:
    type: rest
    alerts: [emerg]
    url: 'https://api.example.com/test_endpoint'
    headers:
      accept: application/json
      x-api-key: abc123456