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

livelywatch

v1.0.0

Published

A fast, TypeScript-based live-reload dev server. Serve static sites, sniff file changes, inject CSS & full-page reloads with WebSocket live updates.

Readme

Poster

⚡ LivelyWatch

LivelyWatch is a blazing-fast live-reload development server written in TypeScript.
It watches your static files, injects live-reload scripts into your HTML, and refreshes the browser automatically when changes are detected. Ideal for static site development, component previews, or SPA prototyping.


🚀 Features

  • ✅ Live-reload for HTML, JS, images, etc.
  • 🎯 Hot-injecting CSS without full reload
  • 📂 Serves static files from any directory
  • 🌐 SPA (Single Page Application) fallback
  • 🔧 Proxy API routes during development
  • 🔒 HTTPS support with custom or default certs
  • 🧪 Written in TypeScript for type safety and clarity

📦 Installation

Global Install (recommended)

npm install -g livelywatch

Now you can run it using:

livelywatch [options]

OR via npx (no install needed)

npx livelywatch [options]

🖥️ Usage

Start server in current directory:

livelywatch

Open browser on launch:

livelywatch --open

Specify root directory:

livelywatch --root ./dist

Use SPA mode (fallback to index.html):

livelywatch --spa --entry index.html

Watch specific files only:

livelywatch --watch "src/**/*.{html,css,js}"

Inject CSS without page reload:

livelywatch --css-inject

Proxy API requests:

livelywatch --proxy "/api=http://localhost:4000"

Enable HTTPS:

livelywatch --https --cert ./cert.pem --key ./key.pem

🔧 All CLI Options

| Option | Alias | Description | Default | | -------------- | ----- | ------------------------------------------------------ | ------------- | | --port | -p | Port to run the server on | 3000 | | --host | -h | Host to bind the server to | localhost | | --root | -r | Root directory to serve | . | | --open | -o | Automatically open in default browser | false | | --spa | | Enable SPA mode (serves entry file for unknown routes) | false | | --entry | -e | SPA entry file (used with --spa) | index.html | | --watch | -w | Glob pattern(s) to watch for changes | "**/*" | | --ignore | | Glob pattern(s) to ignore | | | --css-inject | | Hot-reload CSS without full refresh | false | | --https | | Enable HTTPS with default or custom certificates | false | | --cert | | Path to SSL certificate | (optional) | | --key | | Path to SSL private key | (optional) | | --proxy | | Proxy rule: /api=http://localhost:5000 | (multiple ok) | | --quiet | | Suppress logging | false | | --help | | Show usage help | |


📘 User Manual

1. Starting the server

Start from your current working directory:

livelywatch

You can also serve a different folder:

livelywatch --root ./public

2. Watching files

By default, LivelyWatch watches everything inside --root. To target specific files:

livelywatch --watch "src/**/*.{html,css,js}"

To ignore some paths:

livelywatch --ignore "node_modules/**"

3. CSS Injection

Enable CSS injection to avoid full page reloads when only CSS changes:

livelywatch --css-inject

When .css files change, only the <link> tags are reloaded in-place.


4. Single Page App (SPA) mode

If you're working on a React, Vue, or other SPA app:

livelywatch --spa --entry index.html

This means:

  • All 404s fallback to index.html
  • Works with frontend routers like React Router

5. Proxy API routes

You can forward backend requests during development:

livelywatch --proxy "/api=http://localhost:4000"

Multiple proxies are supported:

livelywatch \
  --proxy "/api=http://localhost:4000" \
  --proxy "/auth=http://localhost:3001"

6. HTTPS support

livelywatch --https

Optionally provide your own SSL cert and key:

livelywatch --https --cert ./cert.pem --key ./key.pem

📸 Example Dev Setup

livelywatch \
  --root ./build \
  --open \
  --watch "**/*.{html,js,css}" \
  --css-inject \
  --spa --entry index.html \
  --proxy "/api=http://localhost:5000"

🧪 Dev Scripts

npm run dev       # Live reload TypeScript build
npm run build     # Bundle to dist/
npm run lint      # Fix lint errors
npm run format    # Format code using Prettier
npm run typecheck # Run tsc without emit

🤝 Contributing

Pull requests and ideas are welcome! Please open an issue to suggest improvements or report bugs.


📜 License

MIT © 2025 Ravi Kishan