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

letstack

v0.1.0

Published

CLI for bootstrapping and validating local multi-service deployment setups

Readme

Letstack

Letstack is an npm CLI for bootstrapping and validating local multi-service deployment setups.

It ships a minimal starter stack with:

  • backend: Express API service
  • frontend: static web app
  • admin: static admin web app
  • edge: Caddy reverse proxy that routes everything through one entrypoint

The goal is to standardize how local service stacks are created across repos instead of copying ad hoc docker-compose setups by hand.

CLI Usage

Scaffold into the current repo:

pnpm dlx letstack init

Or scaffold into a target directory:

pnpm dlx letstack init my-app

Then inside the target repo:

cp .env.example .env
just doctor
just up

Local Development In This Repo

Install and build the package:

npm install
npm run build

Run the CLI locally:

node dist/cli.js help
node dist/cli.js init ./tmp-stack --force
node dist/cli.js smoke .

Commands

  • stacklane init [target]
  • stacklane generate [target]
  • stacklane doctor [target]
  • stacklane validate [target]
  • stacklane smoke [target] [--keep-running]

Manifest-Driven Usage

Each generated repo includes a stacklane.yaml file. Edit that manifest, then regenerate the deployment files:

stacklane generate

To boot the stack and verify the public routes end to end:

cp .env.example .env
stacklane smoke

Current manifest-driven fields support:

  • project name
  • edge port
  • backend/frontend/admin build paths
  • Dockerfile names
  • internal ports
  • admin route prefix
  • API and health route prefixes

Repo Structure

.
├── src/                  CLI source
├── dist/                 Built CLI output
├── scaffold/
│   └── minimal-stack/    Starter files copied by `stacklane init`
├── docs/                 Package and contract docs
├── compose.yaml          Repo's own reference stack
├── compose.dev.yaml
├── justfile
└── package.json

Contract Highlights

  • Base compose.yaml stays production-like.
  • compose.dev.yaml contains bind mounts and local overrides.
  • Role-based service naming: backend, frontend, admin, edge.
  • Healthchecks are required for startup sequencing.
  • just remains the operator interface in generated repos.

See docs/local-deployment-contract.md, docs/cli-package.md, and docs/publishing.md for details.