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

whiteghost

v1.2.0

Published

CLI for the Whiteghost internal app platform: scaffold apps, run them locally against a shared Cloud SQL dev schema, and manage migrations.

Readme

                    ┏┳┓┏━╸╻  ┏━┓┏┓╻┏┓╻
                    ┃┃┃┣╸ ┃  ┃ ┃┃┗┫┃┗┫
                    ╹ ╹┗━╸┗━╸┗━┛╹ ╹╹ ╹
               ─ ─ ─ ─ ─  platform  ─ ─ ─ ─ ─


          ██╗    ██╗██╗  ██╗██╗████████╗███████╗
          ██║    ██║██║  ██║██║╚══██╔══╝██╔════╝
          ██║ █╗ ██║███████║██║   ██║   █████╗
          ██║███╗██║██╔══██║██║   ██║   ██╔══╝
          ╚███╔███╔╝██║  ██║██║   ██║   ███████╗
           ╚══╝╚══╝ ╚═╝  ╚═╝╚═╝   ╚═╝   ╚══════╝
                   ╔═╗╦ ╦╔═╗╔═╗╔╦╗
                   ║ ╦╠═╣║ ║╚═╗ ║
                   ╚═╝╩ ╩╚═╝╚═╝ ╩


         from  `git commit`  to  live URL.
            zero platform admins required.

                       by CTR1
┌─────────────────────────────────────────────────────────────┐
│  $ whiteghost init                                          │
│  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░ 92% │
│  ✓ repo.create        ✓ secrets.create     ✓ iap.expose     │
│  ✓ build.trigger      ✓ db.schema          ✓ dns.record     │
│  ✓ run.service        ✓ firestore.register → live in 60s    │
└─────────────────────────────────────────────────────────────┘

What is this

whiteghost is the CLI that turns a five-minute interview into a live, deployed, melonn-internal application — repo, pipeline, Cloud Run service, database, secrets, DNS, TLS, and SSO — without anyone from the platform team lifting a finger.

It's built for non-engineer melonn employees who want to ship tools for their own team (Ops, Finance, HR, Customer Success) with Claude Code as their pair programmer. Answer five questions, push to main, refresh a URL sixty seconds later.

If you're new here, the illustrated field guide is the best place to start: marketplace.apps.melonn.com/getting-started.


Quickstart

# 1 ─ Install (once, globally)
npm install -g @melonn/whiteghost

# 2 ─ Sign in with your @melonn.com Google account
whiteghost login

# 3 ─ Scaffold a new project
mkdir orders-board && cd orders-board
whiteghost init

# 4 ─ Open with Claude Code, describe what you want
claude

# 5 ─ Claude commits + pushes; Cloud Build deploys in ~60s
#     Your app is live at https://<slug>.apps.melonn.com

What it actually provisions

One whiteghost init + one /provision inside Claude Code gives you:

| Layer | What gets created | |-------------|------------------------------------------------------------------------------| | Source | GitHub repo in whiteghost-melonn/, created by the Whiteghost GitHub App | | CI | Cloud Build trigger wired to the repo — rebuilds on every push to main | | Image | Pushed to Artifact Registry at us-east1-docker.pkg.dev/…/platform/<slug> | | Runtime | Cloud Run service, us-east1, private-VPC egress for DB access | | Auth | IAP (melonn-only) via the shared platform HTTPS LB, or fully public | | Domain | <slug>.apps.melonn.com — Certificate Manager wildcard, Route 53 A record | | Data | Shared Postgres (10.62.0.3) + per-app schema, or Firestore, your choice | | Secrets | Secret Manager bindings injected as env vars at runtime | | Identity| Per-app GSA, Workload Identity, no credential files on disk |

All of it is idempotent — re-run the provision graph and it reconciles state. Drop a resource, re-run, it comes back. Nothing to un-tangle manually.


The five-question interview

Let's set up your application.
Signed in as [email protected] — using this as the owner.

> What do you want to call your app?                (e.g. Orders Board)
> One-line description                              (optional)
> Does this app need a database?                    (y/n)
> What type of backend?                             (A: Web App · B: Data & Analytics)
> Who should be able to use this app?               (A: melonn team · B: public)

Review
────────────────────────────────────────────────────
  Name:        Orders Board
  Description: Track incoming orders.
  Database:    yes
  Backend:     Web Application (Node.js + Express)
  Access:      melonn team only
  Owner:       [email protected]
────────────────────────────────────────────────────
Everything look right? (enter to continue, r to redo)

Owner email is pulled from whiteghost login. Team, tags, and DB engine default sanely and can be edited in app.config.json afterwards.


Commands

In your terminal

| Command | What it does | |----------------------|----------------------------------------------------------------| | whiteghost login | Sign in with your @melonn.com Google account | | whiteghost init | Run the interview, scaffold a project in the current directory | | whiteghost preflight| Check that Node, git, docker, gcloud etc. are installed | | whiteghost whoami | Show the identity in your credentials file | | whiteghost commands| Print the full command + slash-command + agent reference |

Inside Claude Code (slash commands, after scaffolding)

| Slash command | What it does | |---------------|---------------------------------------------------------------| | /init-app | Generate README and final app config after scaffold | | /provision | Walk through the platform dep-graph and create your resources | | /stop-dev | Stop the frontend + backend dev servers | | /doctor | Run pre-deploy compliance + health checks | | /deploy | Tail the live Cloud Build + Cloud Run logs | | /db-setup | Turn on (or off) the managed database for this app | | /env | View or update non-secret environment variables | | /commit | Stage, commit, and push |

To start the app locally, run whiteghost dev directly — there is no /run-dev slash command.

Agents (auto-invoked by Claude)

frontend-page, frontend-component, backend-route, backend-test, database-model, database-seed, security-scan.

For the live, source-of-truth list of CLI commands, slash commands, and agents, run whiteghost commands — it discovers them from the template tree.


Architecture

 ┌──────────────┐  whiteghost init + /provision
 │   builder    │ ─────────────────────────────────▶  ┌──────────────────┐
 │  (you)       │                                     │    admin-app     │
 └──────┬───────┘                                     │  (control plane) │
        │                                             └─────────┬────────┘
        │  git push                                             │
        ▼                                                       │ calls
 ┌──────────────┐       trigger        ┌────────────────┐       ▼
 │    GitHub    │ ────────────────────▶│  Cloud Build   │   ┌──────────────┐
 │   we-are-    │                      │  (2nd gen)     │   │  GCP APIs    │
 │   melonn/<x> │                      └────────┬───────┘   │  run, build, │
 └──────────────┘                               │ deploy    │  sm, ar, dns │
                                                ▼           └──────────────┘
                                        ┌────────────────┐
                                        │   Cloud Run    │  ◀── IAP (internal)
                                        │   <slug>       │      Route 53 +
                                        └────────────────┘      Cert Manager
                                                │
                                                ▼
                               https://<slug>.apps.melonn.com

When something breaks, errors land in two places: the Cloud Build log, or the Cloud Run revision log. That's it.


Template flavors

Scaffolded projects ship with opinionated templates under templates/:

  • common/ — shared frontend (React + Vite + Tailwind + shadcn/ui), backend skeleton, cloudbuild.yaml, .claude/ agents, Dockerfile, app.config.json.
  • google/ — Cloud Run-specific overlay. Secret Manager helpers, IAP auth middleware, dns.record hooks.
  • backend/ (Node) vs backend-python/ (FastAPI) — picked by the interview's Q4.
  • stack-node/ / stack-python/ — Claude Code agents tuned for each language.

The AWS overlay was retired on 2026-04-24; google is the only active cloud.


Development

# Clone and bootstrap
git clone https://github.com/whiteghost-melonn/whiteghost_cli
cd whiteghost_cli
npm install

# Build
npm run build

# Link locally so `whiteghost` runs your working copy
npm link

# Try it out in a fresh folder
mkdir /tmp/test-app && cd /tmp/test-app
whiteghost init

src/ is TypeScript, compiled to dist/. Templates under templates/ are copied verbatim at scaffold time — edit them and re-link to iterate.

Project layout

whiteghost_cli/
├── src/
│   ├── index.ts           # commander entry point
│   ├── interview.ts       # the 5-question interview
│   ├── init.ts            # scaffolding
│   ├── login.ts           # Google OAuth flow
│   ├── reconcile.ts       # dep graph + block runner
│   ├── provision.ts       # /provision orchestration
│   ├── deploy.ts          # live status from Cloud Run
│   ├── client.ts          # credentials + admin-app HTTP client
│   ├── preflight.ts       # tool-version checks
│   └── commands.ts        # command reference table
└── templates/             # scaffold inputs (see above)

Who built this

CTR1 — Daniel Castrillón, melonn platform.


License

Internal — melonn employees and contractors only. Not open source. If you're reading this outside the melonn org, you probably took a wrong turn. 👻

┏┳┓┏━╸╻  ┏━┓┏┓╻┏┓╻
┃┃┃┣╸ ┃  ┃ ┃┃┗┫┃┗┫
╹ ╹┗━╸┗━╸┗━┛╹ ╹╹ ╹

built with melonn