Dashboard
What you see at app.auraimage.ai — Aura Score, LCP telemetry, format mix, and Wallet Guard.
The dashboard shows what's actually happening at the edge: how many images you serve, what formats they end up in, and how fast they paint in real users' browsers.
Aura Score
Every project has an Aura Score out of 100, broken into four signals:
| Criterion | Max | How it's measured |
|---|---|---|
| CDN delivery | 38 | Awarded as soon as any image lives on the AuraImage CDN. |
| BlurHash active | 25 | Proportion of images that have a stored BlurHash. Every upload computes one, so this drifts up to 25 automatically. |
| Triple-stage loading | 25 | Binary: awarded when at least one telemetry beacon (LCP) has been received from a page using <AuraImage telemetry />. |
| Smart crop | 12 | Binary: awarded when at least one image was served with fit=face or fit=auto in the last 30 days. |
A score ≥ 70 means images are unlikely to be a Core Web Vitals bottleneck. Below 40 is a hint that telemetry isn't wired up — the score can't see what your users see.
LCP telemetry
<AuraImage /> includes an opt-in PerformanceObserver that reports observed LCP back to the edge:
<AuraImage src='my-app/hero.jpg' alt='…' width={1200} height={800} priority telemetry />When telemetry is set, the component POSTs to ${NEXT_PUBLIC_AURA_CDN_URL}/v1/telemetry:
{ "lcp": 1284, "projectName": "my-app", "pathname": "/" }No PII, no user identifiers, no cookies. Just LCP in milliseconds and the page path.
The dashboard surfaces:
| Metric | Description |
|---|---|
| Avg LCP | Mean LCP across all reporting page loads. |
| p75 LCP | 75th-percentile LCP — the Core Web Vitals threshold metric. |
| Total beacons | Number of page loads that reported LCP. |
| Slowest pages | Top 10 pathnames by mean LCP, with beacon counts. |
| Saved time / view | Estimated bytes saved versus a 500 KB baseline JPEG, divided by 25 Mbps. |
Format distribution
A breakdown of what your users actually receive after fmt=auto content negotiation:
AVIF ████████████████░░░░ 72%
WebP █████░░░░░░░░░░░░░░░ 25%
JPEG ░░░░░░░░░░░░░░░░░░░░ 3%If AVIF sits below 50% on a modern audience, double-check that your URLs aren't pinning fmt=jpeg somewhere.
Wallet Guard
Wallet Guard caps your monthly overage spend so a viral spike can't generate a surprise bill. Set the cap from Settings → Billing → Wallet Guard:
- Below the cap: requests serve normally and overage accrues at the published per-GB rate.
- At the cap: the service throttles to read-only until the next billing cycle. Existing edge-cached responses keep serving (free); cache misses, transforms, and uploads return
402 Payment Required.
There is no hidden default — if you don't set a cap, the project will keep serving and accruing overage indefinitely. Set a cap during signup.
Cache performance
| Metric | Description |
|---|---|
| Cache hit rate | Share of public-image requests served from the edge cache (target: ≥ 95%). |
| Origin requests | Public requests that missed cache and hit the transform pipeline (R2 fetch + Cloudflare Images). |
| p99 TTFB | 99th-percentile Time to First Byte for cached image responses. |
A hit rate below 90% usually means image URLs vary too much. Standardize on a small set of widths (e.g. w=400, 800, 1200) and avoid passing user-derived numbers straight into w / h.
Private images bypass the shared cache by design (see Private Images) — they don't count toward the hit-rate metric.
CLI sessions
Settings → CLI sessions lists every device that has signed in via aura login. Each row shows the hostname the CLI reported, when the session was created, and when it was last used. Click Revoke to invalidate that session immediately — the next CLI command on that machine will fail and the user will need to run aura login again. Run aura logout from the CLI to revoke the local session and remove ~/.aura/credentials in one step.
See also
- URL API → Response headers for
X-Aura-Cache,X-Aura-Smart-Crop, and the per-stageServer-Timingbreakdown you can read directly from DevTools.