---
title: "CDN Overview"
description: "What the CDN serves, and where to read more."
canonical: "https://developers.fnlb.net/docs/cdn/overview"
markdown: "/docs/cdn/overview.md"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://developers.fnlb.net/llms.txt
> Use this file to discover all available pages before exploring further.

# CDN Overview

The CDN at `https://cdn.fnlb.net` is FNLB's public asset host. It serves the cosmetic data and images behind cosmetic pickers and grids, plus the icons for applications in the developer portal. Everything is read-only and served over plain HTTPS with no API token.

Use this page to find the right section, then follow the guide that fits your task.

## What it serves

| Prefix       | Contents                                                         |
| :----------- | :--------------------------------------------------------------- |
| `/cosmetics` | Cosmetic catalogs, individual cosmetic icons, and image atlases. |
| `/app-icons` | Icons uploaded for applications in the portal.                   |

## How it fits together

A client that displays cosmetics usually follows the same path:

1. Choose a locale and load a [cosmetic catalog](/docs/cdn/cosmetics.md#catalogs) for the item list.
2. Render large grids from [image atlases](/docs/cdn/cosmetics.md#image-atlases), which pack many icons into a few sprite sheets.
3. Fall back to [individual icons](/docs/cdn/cosmetics.md#individual-icons) for single items.
4. Cache by revision: append `?v=<revision>` from the atlas index, or rely on stable icon URLs.

Application icons are independent of cosmetics and use a single immutable URL per upload.

## In this section

<CardGroup cols={2}>
  <Card icon="http" href="/docs/cdn/cosmetics" title="Cosmetics">
    Catalogs, individual icons, and image atlases.
  </Card>
  <Card icon="code" href="/docs/cdn/app-icons" title="App icons">
    Uploaded icons for applications in the portal.
  </Card>
</CardGroup>

## Caching

- Cosmetic catalogs are refreshed about once an hour and rewritten when their contents change.
- Individual cosmetic icons keep a stable URL and are replaced only when the source image changes.
- Cosmetic atlas indexes and pages change with their group revision, so append `?v=<revision>` when caching them.
- Application icon URLs are immutable and safe to cache permanently.
