Platform status
The targets Viranova holds itself to, what the platform is actually measuring against them right now, and every material incident the watchdog has recorded.
What Viranova promises, and what it is measuring
| Objective | Target | Current | Measured from |
|---|---|---|---|
| Public availabilityPublic pages answer without a server error. | at least 99.9% | 100% meeting target | origin measurement, persisted across restarts · window 30 days · 24305 samples |
| Origin response time (p75)How long this server takes to produce a public page. Measured inside the origin process, so it excludes network transit to the reader. | under 800ms | 6996 ms below target | origin measurement, persisted across restarts · window 7 days · 2800 samples |
| Largest contentful paint (p75)When the main content of a page becomes visible to a reader. | under 2500ms | 2256 ms meeting target | real user measurements · window 28 days of real user data · 500 samples |
| Interaction to next paint (p75)How quickly the page responds when a reader taps something. | under 200ms | 64 ms meeting target | real user measurements · window 28 days of real user data · 500 samples |
| Cumulative layout shift (p75)How much the page moves under a reader while it loads. | under 0.1 | 0 meeting target | real user measurements · window 28 days of real user data · 500 samples |
| Published media healthEmbedded players on live stories still resolve at their platform. | at least 100% | 100% meeting target | daily platform check · window daily check · 27 samples |
| CDN edge cachingStatic assets are served from the CDN edge rather than fetched from the origin every time. | at least 100% | Bypassing the edge below target | edge reported DYNAMIC · window checked every 30 minutes · 1 samples |
Field measurements come from Viranova's own first-party events, which collect no personal data. Origin measurements are written to disk and survive a restart, so a deploy no longer resets this record; the origin history is retained for 90 days. A verdict is only published once an objective has enough samples behind it — below that floor the row reads Insufficient data rather than a green tick a single measurement could have produced.
Origin response time, full distribution: p75 6996 ms · p95 10730 ms · p99 12405 ms, over 2 800 public documents. The tail is published alongside the median because a cold first request can cost several seconds while the median stays well under a second, and a median on its own hides exactly that.
Uptime over 7, 30 and 90 days
| Window | Public requests | Server errors | Availability |
|---|---|---|---|
| Last 7 days | 14 283 | 0 | 100% |
| Last 30 days | 24 305 | 0 | 100% |
| Last 90 days | 24 305 | 0 | 100% |
Each window prints its own denominator. A window with fewer than 200 measured requests reads Insufficient data — never a rounded 100% and never a projection from a shorter window.
What has gone wrong, and when
- no CDN is caching static assets (cf-cache-status: DYNAMIC on /styles.css?v=dff3efb5b208) — every reader is pulling full weight from the origin. If the domain is not yet behind a caching CDN this is expected and is a DNS/infrastructure task, not a deploy; if it is, check that zone's development mode and cache rules.591 observations, last seen 25 Aug 2026, 04:06
- / answered 40341 observations, last seen 25 Aug 2026, 04:06
- /pulse answered 40341 observations, last seen 25 Aug 2026, 04:06
- /styles.css answered 40341 observations, last seen 25 Aug 2026, 04:06
- /app.js answered 40341 observations, last seen 25 Aug 2026, 04:06
- /admin.js answered 40341 observations, last seen 25 Aug 2026, 04:06
- /admin.css answered 40341 observations, last seen 25 Aug 2026, 04:06
- /api/content answered 40341 observations, last seen 25 Aug 2026, 04:06
- /api/content unreachable from inside the service: The operation was aborted due to timeout20 observations, last seen 24 Aug 2026, 12:00
- /styles.css unreachable from inside the service: The operation was aborted due to timeout3 observations, last seen 23 Aug 2026, 19:02
- /app.js unreachable from inside the service: The operation was aborted due to timeout3 observations, last seen 23 Aug 2026, 19:02
- / unreachable from inside the service: The operation was aborted due to timeout4 observations, last seen 23 Aug 2026, 15:32
- /pulse unreachable from inside the service: The operation was aborted due to timeout3 observations, last seen 23 Aug 2026, 15:32
- /admin.js unreachable from inside the service: The operation was aborted due to timeout2 observations, last seen 23 Aug 2026, 15:32
- news sitemap has no story inside the 48-hour window; serving the 20 most recent of 190 eligible (newest 2026-08-12T06:00:00.000Z)162 observations, last seen 19 Aug 2026, 01:00
- /admin.css unreachable from inside the service: The operation was aborted due to timeout1 observation, last seen 14 Aug 2026, 18:32
The watchdog runs every 30 minutes, so one unresolved condition is observed many times. Repeated observations of the same condition are grouped into a single incident with the date it opened and the number of times it has been seen — a list of check results is not a list of failures. The individual check records stay internal.
Last check: 25 Aug 2026, 04:06 — status alert.