Optimization

March 17, 2026

Use this guide when you care about banner visibility speed, route static-ness, and reducing backend round-trip cost.

1) Prefer Same-Origin Proxy

Proxy c15t requests through your app server so the browser calls your own origin instead of a third-party domain.

Why this helps:

  • Same-origin requests avoid extra DNS/TLS setup in many deployments
  • Ad blockers are less likely to block your init endpoint
  • You can change backend infrastructure without touching client code

2) Prefetch Init Data Early

Use buildPrefetchScript() to start the /init request as early as possible — before your app JavaScript loads.

In production benchmarks with a same-origin rewrite, prefetching strategies show measurable improvement over client-only init:

StrategyScripts loadedData request startsBanner visible
Client-only (no prefetch)baselinebaselinebaseline
Browser prefetch~1.3x faster~2.6x earlier~1.25x faster
Server prefetch~2x fasterbefore page loads~1.9x faster

Add the prefetch script to your HTML <head>:

Then create the store normally. Matching prefetched data is consumed automatically by the runtime during first store initialization:

Info

If overrides.gpc conflicts with the browser's ambient GPC signal, the prefetched entry is not reused and c15t falls back to a normal client /init.

Animation Performance

The default motion tokens are tuned for speed-first product UI:

TokenDurationUsed for
fast80msBanner slide + overlay, card scale, button hover, widget entry/exit
normal150msAccordion, switch toggle
slow200msDialog trigger snap, tab indicator

These defaults follow the principle that product UI should be fast and purposeful — animations exist for spatial continuity, not decoration. In benchmarks, animation duration contributes a constant floor to "data fetched → banner visible" timing. The default tokens sit at the lower end of standard UI ranges (80-200ms) to minimize that floor.

Reduce Network Overhead

If you must use a cross-origin backend URL, add preconnect so the browser starts DNS/TLS early: