Docs, Performance and themes

Performance notes

What the storefront code weighs, what it loads and from where, one measurement on one theme, and how to measure your own store so the numbers compare.

Category
Reference
Updated
26 September 2026
Applies to
TreStack Timer, every plan

What loads, and from where

The storefront code is one script bundle, served from the Shopify CDN as part of the theme app extension and loaded with defer, so it does not hold up the page. Your published timers are written into the page by the app embed, so there is no request to our server to fetch them. While no timer is published, the embed loads nothing at all.

A web font loads only the character sets the timer text uses, from the same extension. A background image is served from your own store Files. The one request that goes to our server is a small count event to timer.trestack.app when a timer is seen, clicked, closed, or completed, which is what the analytics and the monthly views read.

The numbers

The script bundle measured 11.4 KB gzipped on 26 September 2026, against a target of under 15 KB.

On the same day we ran Lighthouse mobile on a product page on Shopify Horizon theme with a top bar and a product timer that had a background image and a web font, five runs with the app and five without, and compared medians. There was no measurable drop in the performance score, layout shift was the same, and the product image stayed the largest paint. That is one measurement on one theme. It is not a guarantee for every store, which is why the next section exists.

Measuring your own store

Lighthouse on a live storefront is noisy: two runs on an unchanged page often differ by several points. Run each configuration at least three times and compare medians, on the same page, with the same device setting, in a private window with no browser extensions. Test the page the timer is actually on, logged out.

If the median moves by more than a couple of points, send us both sets of reports and the page URL. We treat that as a bug, not a tuning question.

Measuring the cost, in four steps.

In order. Each step assumes the one before it is finished, so skipping one is how the last step fails for a reason that looks unrelated.

  1. Step one

    Pick one page and log out

    The page the timer will be on. Private window, no browser extensions, no customer session.

  2. Step two

    Run three baseline reports

    Same device and throttling each time. Save all three and note the medians.

  3. Step three

    Publish the timer

    Change nothing else on the theme in the same session, or the comparison means little.

  4. Step four

    Run three more and compare

    Compare medians for largest paint and layout shift, not only the headline score.

Settings reference

The controls this page touches, with what each one does and the default the app ships where there is one.

Script
One bundle, loaded with defer, from the Shopify CDN as part of the theme app extension.
Size
11.4 KB gzipped, measured 26 September 2026. Target under 15 KB.
Timer settings
Written into the page by the app embed. No request to our server to fetch them.
Nothing published
The app embed loads no script at all.
Fonts
Your theme font by default. A web font loads only the character sets the timer text uses.
Images
Background images come from your own store Files on the Shopify CDN.
Requests to our server
Count events only, to timer.trestack.app, with the timer ID and event type and no shopper identifier.

If this does not work

The failures most likely on this procedure, with the check that resolves each one. If none of them fit, we would rather have the store URL than a guess.

Send us the store URL
Your Lighthouse score dropped after publishing a timer

Check it dropped on the median of three runs rather than on one, and that nothing else changed on the theme in the same session. If the median really moved, send both sets of reports and the URL.

The network panel shows a request you do not recognise

Requests to timer.trestack.app are the count events described above. The script and fonts come from the Shopify CDN under the extension assets. Anything on another domain belongs to your theme or another app.