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

@within-7/jetr

v0.10.3

Published

CLI for Jetr static site hosting

Readme

@within-7/jetr

Static site hosting CLI. Deploy files to Cloudflare R2 with one command. Incremental uploads, custom domains, password protection, file rendering.

Install

npm i -g @within-7/jetr

Or use directly:

npx @within-7/jetr ./dist my-site

Quick Start

# 1. Login (or auto-detected from AITER_TOKEN env)
jetr login

# 2. Deploy
jetr ./dist my-blog
# ✔ Deployed!
#   Site:  my-blog
#   URL:   https://my-blog.your-jetr-domain.com

# 3. Re-deploy (remembers site name via .jetrrc)
jetr
# Using saved site: my-blog
# ✔ Deployed!  1 uploaded, 11 unchanged

Deploy

The default command. Just run jetr in any project directory.

jetr                                  # deploy current dir (name from .jetrrc or random)
jetr ./dist                           # deploy a directory
jetr ./dist my-blog                   # deploy with a specific site name
jetr ./dist docs.example.com          # deploy to a custom domain (auto-registers)
jetr index.html                       # deploy a single file
jetr *.html *.css my-site             # deploy multiple files
  • Site auto-created if it doesn't exist
  • Name saved to .jetrrc for zero-config re-deploys
  • SHA-256 incremental diff — only changed files upload
  • 10x concurrent upload
  • Root domains (e.g. example.com) are rejected — use a subdomain like www.example.com

Custom Domains

Pass a domain name instead of a site name:

jetr ./dist docs.example.com
# ✔ Deployed!
#   Domain: docs.example.com
#   DNS: docs.example.com CNAME fallback-origin.jetr.your-domain.com

Set the CNAME record at your DNS provider, and the site is live. SSL auto-provisioned.

Auth

jetr login                            # interactive (username + hidden password)
jetr login user pass                  # non-interactive
jetr login --token <jwt>              # direct JWT (for CI)
jetr whoami                           # show current user
jetr logout                           # clear credentials

Environment variables (auto-detected, no login needed):

  • AITER_TOKEN — AiTer platform JWT
  • JETR_TOKEN — explicit JWT for CI/scripts

Manage Sites

jetr list                             # list all your sites
jetr info <name>                      # show files, domains, tokens, config
jetr info docs.example.com            # lookup by domain name
jetr delete <name>                    # permanently delete site + files + domains
jetr create <name> -p secret          # create with password
jetr create <name> -e 86400           # create with 24h expiry

Access Control

jetr password <name> secret           # set visitor password
jetr password <name>                  # remove password (make public)
jetr token create <name>              # generate share link (bypasses password)
jetr token create <name> -n "QA"      # share link with label
jetr token revoke <name> <id>         # revoke a share link

Ignore Files

.jetrignore (gitignore syntax) controls what gets deployed. Default rules auto-exclude node_modules, .env, .git, build artifacts, etc.

jetr init                             # generate .jetrignore with defaults

.jetrkeep overrides .jetrignore — force-include specific files.

Metadata files (.jetrignore, .jetrkeep, .jetrrc) are never uploaded.

File Rendering

Jetr automatically renders documents in the browser:

| File type | Rendering | |-----------|-----------| | .md | Markdown → styled HTML page | | .csv | Parsed into HTML table | | .json | Formatted + syntax colored | | .txt, .yaml | Code view with line numbers | | No index.html | Auto directory listing (grouped by type) |

Append ?raw to any URL to get the original file.

How It Works

  1. CLI scans directory, computes SHA-256 hashes
  2. Sends manifest to API — diffs against stored hashes
  3. Only changed files transfer (10 concurrent streams to R2)
  4. Finalize: old files cleaned, metadata updated, site is live

Config

Stored at ~/.jetr/config.json:

{
  "apiUrl": "https://api.your-domain.com/jetr",
  "user": "lib",
  "token": "eyJhbG..."
}