Your assets, moored at every edge.
Marina serves JavaScript, CSS, fonts and WASM from 38 points of presence on versioned, immutable URLs, with a published SRI digest for every file. One command to publish, nothing to purge.
- Edge deliveryoperational
- Origin shieldoperational
- Publish APIoperational
- TLS issuanceoperational
- los1 Lagosdrained · maint.
▲ 9.4% vs previous 30 days
p99 under 61 ms worldwide
request success, all PoPs
from berth push to warm cache
Peak 5.1M req/s at 15:00 UTC. Edge cache absorbed 98.7% of it.
Edge hits. Misses go to the origin shield, not your origin.
Brotli on 71% of text responses, gzip fallback on the rest.
GET /v/chartline/4.2.1/chartline.min.js HTTP/2 200 cache-control: public, max-age=31536000, immutable content-encoding: br digest: sha-256=q3Yd0w…8nI= access-control-allow-origin: * x-marina-pop: rtm1 x-marina-cache: HIT
<link rel="stylesheet" href="https://cdnmarina.com/v/chartline/4.2.1/chartline.min.css" integrity="sha384-Kp7vT2…Zx9Qe" crossorigin="anonymous"> <script type="module" src="https://cdnmarina.com/v/chartline/4.2.1/chartline.min.js" integrity="sha384-Hd3mRb…u0LwA" crossorigin="anonymous"></script>
Instrument panel
What every release gets, without configuration.
Immutable versioned paths
Every release lives under /v/<pkg>/<semver>/. Once published, bytes never change, so shipped links keep resolving and caches can hold them for a year.
SRI digests on publish
The CLI prints ready-to-paste sha384 integrity values, and the same digests are served in the Digest header for automated checks.
Origin shield tier
Edge misses collapse into a single regional shield fetch. A viral release becomes one origin read per shield, not one per PoP.
HTTP/2 and HTTP/3
QUIC with 0-RTT resumption on every PoP, TLS 1.3 only, certificates issued and rotated automatically.
Brotli, pre-compressed
Text assets are compressed once at publish time at the highest level, then served as-is. No per-request CPU, no first-hit penalty.
Short-TTL aliases
Need a moving pointer? /a/<pkg>/stable redirects to the current immutable path with a 60 second TTL.