Tidal_
static asset cdn · v5.2

Immutable assets. Served at the edge.

Tidal delivers your JavaScript, CSS, fonts and WebAssembly from 20 points of presence on versioned URLs that never change. Pin a release once and it is cached for a year, everywhere.

https://cdntidal.com/v/<pkg>/<semver>/<file>
20edge PoPs
14msmedian TTFB
99.99%uptime, trailing 12 mo
97.3%edge cache hit ratio

Built for pinned releases

No purge API, no dashboard ritual. A URL is a version, and a version is a promise.

  1. 01

    Immutable by path

    Every release lives under /v/<pkg>/<semver>/. Files are never overwritten, so responses carry Cache-Control: public, max-age=31536000, immutable and browsers never revalidate.

  2. 02

    Subresource integrity, published

    Each file has a sha384 digest available at publish time and via ?meta. Paste it into integrity and the browser enforces it.

  3. 03

    Brotli, gzip and HTTP/3

    Text assets are precompressed at publish time with Brotli level 11 and negotiated per request. QUIC and HTTP/3 are on at every PoP, with automatic TLS 1.3.

  4. 04

    Warm before the first request

    Publishing fans an artifact out to the whole network. A first hit from Singapore is as warm as one from Frankfurt.

  5. 05

    Aliases when you need them

    Use /a/<pkg>/<channel> for a moving pointer such as stable. Aliases cache for 60 seconds and 302 to the current immutable path.

Ship in one command

The tdl CLI uploads a build directory, prints digests and returns ready-to-paste tags.

# publish ./dist as lumen@3.4.1
$ tdl publish ./dist --pkg lumen --version 3.4.1
  → 4 files, 218 KB (brotli 61 KB)
  → https://cdntidal.com/v/lumen/3.4.1/lumen.min.js
  → sha384-oQ3vF9mZk2LxT8bYcR1wNpJ…
<script src="https://cdntidal.com/v/lumen/3.4.1/lumen.min.js"
  integrity="sha384-…" crossorigin="anonymous" defer></script>