This tool works with both Expo and React Native CLI projects. Just install and go.
How many megabytes of images are you shipping? Which ones does nobody ever see? Is that hero PNG in the bundle twice? React Native gives you no inventory of your bundled assets — the usual answer is unzipping a release build and spelunking through APK Analyzer after you've already shipped the bloat.
The Assets tool is that inventory, live in your app: every bundled asset — images, fonts, video, audio — with dimensions, @1x/@2x/@3x scale coverage, real byte sizes, duplicate-content detection, and the one thing no build-time tool can do: which assets are shipped but never loaded at runtime. Pure JavaScript, zero configuration.

Every bundled asset, largest first — images, fonts, video, audio — with measured byte sizes, scale coverage, kind filters, search, and quiet finding badges. The header answers 'how much am I shipping' at a glance.
npm install @buoy-gg/assetsThat's it — no register import, no config, no registration. Auto-discovery finds the installed package and the ASSETS tool appears in your floating menu:
import { FloatingDevTools } from "@buoy-gg/core";
export default function App() {
return (
<>
<YourApp />
<FloatingDevTools />
</>
);
}
import { FloatingDevTools } from "@buoy-gg/core";
export default function App() {
return (
<>
<YourApp />
<FloatingDevTools />
</>
);
}
Why zero-config? Asset ids in React Native's runtime registry are contiguous, so the tool enumerates everything registered since app start the moment it opens — nothing needs to load early. Live updates stream in as lazily-required assets register later.
Three layers, each degrading gracefully:
Honest limits: .json files (including Lottie) compile into the JS bundle as source modules, so they never reach the asset registry — they're visible in dev via the bundle graph only. Native-only resources (app icons, splash screens) live outside the JS bundle entirely and aren't listed.