tools / assets

Everything you ship — and the megabytes you never needed to

React Native gives you no inventory of your bundled assets — the usual answer is unzipping a release build and spelunking through APK Analyzer after the bloat already shipped. Buoy Assets is that inventory, live in your app: every bundled asset, largest first, with real byte sizes, scale coverage, duplicate detection, and the one thing no build-time tool can do — which assets are shipped but never loaded at runtime. Zero configuration.

Read the docsnpm i @buoy-gg/assets
Bundled-asset inventory sorted largest first with findings
The whole inventory, largest first — measured sizes, kind filters, and quiet finding badges.
Asset detail with findings and Previous/Next stepper
One asset, fully explained: findings, per-scale sizes, source path, and the stepper.
Font filter showing loaded families and heavy icon fonts
The FONT view: loaded families plus every bundled font — unsubset icon fonts get flagged HEAVY.
Never-loaded assets detected from the bundle graph
UNUSED: assets that ship in the bundle but were never required by any code at runtime.

What it does

The whole inventory, measured

Every bundled image, font, video and audio file with dimensions, @1x/@2x/@3x coverage, and per-variant byte sizes measured from the Metro server in dev.

Shipped but never loaded

The tool diffs the full bundle graph against what actually registered at runtime — static grep tools can only guess; this knows.

Duplicates + heavy-asset findings

Identical bytes shipped twice (flagged by content hash), images that decode larger than the screen, heavy GIFs, unsubset icon fonts, and WebP conversion candidates.

Baseline diff

Save a baseline, make your change, and see exactly what it added — new, removed, and grown assets with net bytes. App-size regression prevention without CI tooling.

Frequently asked questions

How do I find out how big my React Native app assets are?

Open the tool in a dev build — every scale variant of every bundled asset is measured from the Metro server and summed per asset, with kind totals in the header. Release builds still get decoded-memory estimates.

Can it find assets I ship but never use?

Yes — in dev it fetches the full Metro bundle graph and diffs it against what actually registered at runtime, so anything bundled but never required shows up under UNUSED. Runtime knowledge is what static grep scripts are missing.

How is this different from the Images tool?

Images shows what your app renders at runtime — per-load cache verdicts, timings, failures. Assets shows what your app ships in the bundle. The slow load is an Images problem; the megabytes are an Assets problem.

How do I stop asset bloat from creeping back in?

Save a baseline before you start, then re-open the tool after any change — it reports added, removed and grown assets with the net byte delta, persisted across app restarts.

Add Assets to your app

Free for on-device debugging. Two-minute install, no native code.

Quick startnpm i @buoy-gg/core

Works well with