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

crosspromote

v0.3.1

Published

Framework-agnostic, minimal dependencies TypeScript package for implementing CrossPromote in your project.

Downloads

10

Readme

CrossPromote

CrossPromote package compatible with most JavaScript frameworks.

crosspromote is a package that allows you to display custom ads, referrals, and sponsored content inside your app, and to manage it through a unified dashboard.

Other implementations include:

Getting started

  1. Create an account on CrossPromote and top it up.

  2. Create your first ad, assign it to a an ad set, and create a new app.

  3. Copy your app's identifier (it's visible under your app's name in the dashboard).

  4. Add this package to your dependencies.

npm i crosspromote
  1. Use the CrossPromoteClient to retrieve ads:
// Create a new client.
const client = new CrossPromoteClient({
  // Replace with your app's identifier from CrossPromote.
  appId: "example.image",
});

// Fetch an ad.
const ad = await client.retrieve({
  size: AdSize.W300H250,
  match: AdMatch.preferredSize,
});

// One of the following: `image`, `metadata`, `empty`.
console.log(ad.type);

// An URL that redirects to a page specified in the console.
// This URL is a special variant that also tracks the number of clicks.
console.log(ad.targetUrl);

// Custom JSON payload specified in the console.
console.log(ad.payload);

// Properties available only for ads with type `image`.
if (ad.type === AdType.Image) {
  console.log(ad.imageUrl);
  console.log(ad.size);
}

Additional information

  • You can use predefined identifiers to test your app during development, and avoid incurring cost during testing. Use example.image as your app id to display a placeholder image, or example.metadata for metadata ad.
  • If there are any issues feel free to go to GitHub Issues and report a bug.

Maintainers