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

@scouterna/j26-cli

v1.1.5

Published

Local development environment CLI for J26 microservices

Readme

@scouterna/j26-cli

Local development environment CLI for J26 microservices.

Sets up a full local dev environment by generating a Caddy reverse proxy and a Docker Compose stack that mirrors the production routing on https://local.j26.se.

Requirements

  • Node.js ≥ 24 — the CLI runs TypeScript directly using Node's built-in type stripping (no compilation step)
  • Docker with the Compose plugin

Installation

npm install -g @scouterna/j26-cli

Commands

| Command | Description | |---|---| | j26 up | Generate config files and start the stack (streams logs) | | j26 up -d | Same but runs in the background (detached) | | j26 down | Stop and remove the stack | | j26 config | Interactively configure how each service runs | | j26 status | Show current mode for all services | | j26 trust-ca | Install the local Caddy CA so browsers trust the HTTPS certificate |

Workflow

# First time
j26 up          # initialises .j26.local.yaml with defaults and starts the stack

# Change which services run locally
j26 config      # pick modes, add/remove local-only services
j26 up          # apply changes

# Daily use
j26 up          # pull latest images and restart
j26 down        # shut everything down

Service modes

| Mode | Description | |---|---| | cloud | Proxy requests to the live cloud URL (default) | | docker | Run the service's Docker image locally | | local | Forward to a dev server running on your machine (e.g. npm run dev) | | skip | Exclude the service entirely — no route is generated |

services.yaml

Each project that uses @scouterna/j26-cli ships a services.yaml manifest describing its microservices. Place it at the root of the repository and run commands with --config path/to/services.yaml if it's not in the current directory.

services:
  - name: auth
    path: /auth
    cloudUrl: https://app.example.com/auth
    dockerImage: ghcr.io/your-org/your-auth:latest
    port: 80

  - name: app
    path: /
    cloudUrl: https://app.example.com/
    dockerImage: ghcr.io/your-org/your-app:latest
    port: 3000
    rewritePath: false

Service fields

| Field | Required | Description | |---|---|---| | name | ✅ | Identifier, used as the Docker Compose service name | | path | ✅ | URL path prefix on https://local.j26.se (must start with /) | | cloudUrl | ✅ | Full HTTPS URL of the cloud-hosted service | | dockerImage | ✅ | Docker image to run in docker mode | | port | ✅ | Port the service listens on inside its container | | rewritePath | | Strip path prefix before forwarding (default: true) | | env | | Base env vars passed to the container in docker mode |

Local configuration

Personal configuration is stored in .j26.local.yaml at the project root. This file is gitignored — each developer maintains their own copy.

services:
  auth:
    mode: local
    hostPort: 3001
  app:
    mode: cloud

# Services defined only on your machine (not in services.yaml)
localServices:
  my-feature:
    path: /my-feature
    port: 5173