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

@solinkify/gate-proxy

v0.1.5

Published

Solinkify Gate reverse proxy — protect ANY website (PHP, Ruby, static, legacy) with the HTTP 402 AI paywall without touching its code. Standalone proxy + Nginx auth_request / Caddy forward_auth modes.

Readme

@solinkify/gate-proxy

Solinkify Gate reverse proxy — protect any website (PHP/WordPress without a plugin, Ruby, legacy Python, static sites, old CMSes) with the x402-aligned HTTP 402 AI paywall, without touching its code. The decision pipeline is the real @solinkify/gate core (x402-aligned manifest, tiered pricing, bot IP verification, freemium, anti-replay via the backend).

Three modes, one binary:

| Mode | How | Best for | |---|---|---| | Standalone proxy | gate-proxy in front of your upstream | simple VPS, Docker, sites without nginx | | Nginx auth_request | nginx keeps serving; the gate only decides allow/deny | existing nginx setups | | Caddy forward_auth | same, Caddy flavor | Caddy setups |

Install & run

npm i -g @solinkify/gate-proxy

# via config file
solinkify-gate-proxy --config gate.config.json

# or via env
SOLINKIFY_WALLET=<CREATOR_WALLET> SOLINKIFY_PRICE=0.001 \
SOLINKIFY_ENDPOINT_ID=my-site SOLINKIFY_UPSTREAM=http://127.0.0.1:8080 \
solinkify-gate-proxy

gate.config.json accepts EVERY GateConfig field (@solinkify/gate) plus upstream, port (default 8402), host (default 127.0.0.1):

{
  "wallet": "<CREATOR_WALLET>",
  "price": 0.001,
  "endpointId": "my-site",
  "upstream": "http://127.0.0.1:8080",
  "tiers": [{ "pattern": "/premium/*", "endpointId": "premium", "price": 0.01 }]
}

Standalone mode

Point your DNS/load-balancer at gate-proxy; it transparently proxies to upstream. AI scrapers → 402 + manifest; humans & search engines → forwarded; paying, verified agents are forwarded with the X-Solinkify-Verified: true header (your upstream can trust it). /.well-known/solinkify is served automatically.

Nginx mode (examples/nginx.conf)

Run gate-proxy WITHOUT an upstream (pure auth endpoint). nginx calls /_solinkify/auth-nginx per request (204 allow / 403 deny), then error_page 403 serves the 402 manifest from /_solinkify/manifest.

Caddy mode (examples/Caddyfile)

forward_auth to /_solinkify/auth — non-2xx responses (402 + manifest) are copied by Caddy straight to the client.

Control endpoints

| Path | Purpose | |---|---| | /_solinkify/health | Health check | | /_solinkify/auth | Auth subrequest (Caddy): 204 / 402+manifest | | /_solinkify/auth-nginx | Auth subrequest (nginx): 204 / 403 | | /_solinkify/manifest | 402 manifest for X-Original-URI (error_page target) | | /_solinkify/discovery | /.well-known/solinkify discovery document |

Security notes

  • Default bind is 127.0.0.1 — don't expose the control endpoints publicly.
  • Payment verification, endpoint+amount binding, and anti-replay are enforced by the Solinkify backend, not in the proxy.
  • Fail-open: if gate-proxy itself errors, the request is forwarded to the upstream (site availability beats one leaked request).

License

MIT © Solinkify