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

@boostbossai/lumi-mobile

v0.3.0

Published

Lumi for Mobile App runtime SDK — Boost Boss's ad placements for React Native (Expo + bare).

Readme

@boostbossai/lumi-mobile

Lumi for Mobile App runtime SDK — Boost Boss's ad placements for React Native (Expo + bare).

Most publishers install this through the CLI rather than by hand:

npx @boostbossai/install-mobile pub_xxx

Keep reading if you want to wire it manually.

Install

npm install @boostbossai/lumi-mobile
# Expo iOS: prebuild then run normally.
# Bare RN iOS: cd ios && pod install

Peer deps: react >=18, react-native >=0.74.

Manual wire-up

import { LumiProvider } from '@boostbossai/lumi-mobile';

export default function App() {
  return (
    <LumiProvider publisherId="pub_a8x2k9f9">
      {/* your app */}
    </LumiProvider>
  );
}

That's it. <BottomBanner /> auto-mounts at the screen bottom and starts fetching ads on first render. <SplashSponsor /> auto-mounts on cold start (once per app launch, module-level flag prevents re-show across re-mounts). Both follow the Publisher Agreement §4.1 auto-placement default; opt out with disableBottomBanner / disableSplashSponsor props on <LumiProvider>.

Opt-in placements

The placements below render only when you mount them — they need a publisher trigger point (a screen, a button tap, a level-end). Auto-mount doesn't apply because there's no reliable global signal for "now is the moment to show a rewarded video."

import {
  RewardedVideo,
  InlineNativeBanner,
  FullScreenInterstitial,
} from '@boostbossai/lumi-mobile';

// Rewarded — real full-screen video player. Install expo-av for native
// playback; without it, falls back to a sponsored card + wall-clock timer.
<RewardedVideo
  rewardAmount={10}
  rewardUnit="credits"
  onReward={({ amount, unit }) => giveUserCredits(amount)}
  onSkip={() => {/* user dismissed early — no reward */}}
/>

// Inline — drop into a feed.
<InlineNativeBanner />

// Full-screen — show on level-end, etc.
<FullScreenInterstitial
  visible={showInterstitial}
  onClose={() => setShowInterstitial(false)}
/>

Placements & RPM

| Placement | RPM | | ------------------------ | ----------- | | Sponsored citation | ~$4.50 | | Suggested chip | ~$4.50 | | Inline sponsored card | ~$6.50 | | Loading-state ad | ~$7.00 | | Pre-roll video | ~$11.00 | | Rewarded video | ~$35.00 | | Bottom banner | ~$6.50 | | Inline native banner | ~$7.50 | | Full-screen interstitial | ~$18.00 | | Splash sponsor | ~$15.00 |

v0 caveats

  • Session UUID uses Math.random(). Upgrade to expo-crypto (Expo) or react-native-get-random-values (bare) when stricter uniqueness matters.
  • <RewardedVideo> and <PreRollVideo> use expo-av for real native video playback when installed (expo install expo-av). It is an optional peer dep — without it, both placements render a sponsored-card fallback. The fallback still fires impressions and resolves onReward / onComplete, just without a real video frame.
  • TSX ships as-is; your bundler (Metro / Babel) handles transpilation.

License

MIT