> For the complete documentation index, see [llms.txt](https://docs.globo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.globo.io/globo-combined-listings/reference/how-it-works.md).

# How it works under the hood

You don't need this page to use the app — it's here if you're curious why changes take a minute to appear, or whether the app slows your store down (it doesn't).

## Data flow

<figure><img src="/files/qqxuJAzLGO0wvYnm8v6G" alt="You save in the admin, data publishes automatically, and the theme renders the widgets"><figcaption><p>Save → published in the background → your theme renders it.</p></figcaption></figure>

When you save a group or style, the backend publishes in the background:

1. **A shop-wide data file** on Shopify's CDN — one JSON file describing all active groups and styles. Collection-card widgets read this.
2. **Per-product data** attached directly to each grouped product — so a product page knows its own group instantly, with nothing to fetch.
3. **Pre-rendered widget HTML** per product and language — product pages can paint the widget **server-side**, before JavaScript runs.

{% hint style="info" %}
This is why storefront changes take a minute or two to appear: publishing is queued and the CDN caches the file.
{% endhint %}

## Performance design

* **Tiny loader** — the always-loaded entry script is under 2 KB; everything else loads on demand.
* **Lazy cards** — card widgets initialize only when cards scroll into view, and data is fetched once per page.
* **Server-side rendering** — with per-product data baked into the page, product-page widgets paint with zero blocking JavaScript.
* **No layout shift by design** — pre-rendered markup means the widget doesn't pop in and push content around.

## Your theme is never edited

Everything the app publishes is **app-owned data** that sits alongside your store — the app never modifies your theme code or your products. Turn off the app embed (or uninstall) and the widgets simply stop rendering, leaving your theme exactly as it was.
