Measured, not asserted
Every number on this page came from the live site, not from a design document. Three of them are places the platform loses, and those are on the page too.
Why this page exists
A teardown that only wins is a brochure
Measured 10 September 2026 on demo.pelasgia.io/en. Anyone can reproduce these figures with the commands at the bottom.
Agencies publish case studies. Platforms publish measurements. The difference matters when the person reading is the engineer your client will ask before signing, because that person has seen a hundred pages of adjectives and no numbers.
So this page is the whole picture: twelve delivery metrics, the mechanisms behind them, the operational figures a team lives with after launch, and the three things a serious review would flag. The gaps are named rather than buried, with what it takes to close each one.
Delivery
What the browser actually got
| Metric | Measured | Typical enterprise build | Verdict |
|---|---|---|---|
| Time to first byte, warm edge | 96–121 ms | 200–600 ms | Ahead |
| DOM content loaded | 319 ms | 1.2–3 s | Ahead |
| Total page transfer | 392 KB | 2–5 MB | Ahead |
| Requests to fully load | 24 | 80–200 | Ahead |
| HTML on the wire | 13.7 KB of 67.8 KB | 60–200 KB | Ahead |
| Cumulative layout shift | 0 | 0.05–0.25 | Ahead |
| Lighthouse, desktop | 100 | 70–95 | Ahead |
| Lighthouse, mobile | 92 | 40–75 | Ahead |
| Total blocking time, mobile | 20 ms | 300–1200 ms | Ahead |
| JavaScript transferred | 272 KB across 12 files | 600 KB – 2 MB | Ahead |
| Protocol | HTTP/2 | HTTP/2 or HTTP/3 | Level |
| Field data from real users | none yet | 28-day Chrome UX report | Behind |
Why it is fast
Five mechanisms, not one tuning pass
Speed here is structural. None of it decays the moment someone adds a section.
Four cache layers, addressed by tag
The browser holds hashed assets for a year. The edge holds HTML for about sixty seconds. The application's own data cache holds rendered content for five minutes, keyed by content tag, backed by a shared store that survives deploys and is visible to every running copy. Publishing purges by tag, so one edit invalidates exactly the pages that changed.
Layout space reserved before the image arrives
Every image slot declares its aspect ratio, so the page never reflows when a picture loads. Fonts are self-hosted with a size-matched fallback, so text does not jump on swap. That is why layout shift measures zero rather than merely low, and why it stays zero on pages nobody tested.
Fonts pushed with the document
The fonts are self-hosted and served from the same domain as the page. Two files, 35 KB, each with a metric-matched fallback, so the text does not move when the real face swaps in. The logotype is not among them — it ships as outlines, so the brand mark never waits on a font. No third-party font host, no render-blocking request to someone else's infrastructure.
Compression that actually applies
The document leaves the edge at 13.7 KB and arrives as 67.8 KB of markup, an eighty percent reduction. Hashed assets carry a one-year immutable lifetime, so a returning visitor re-downloads nothing but the page itself.
Animation that never touches the main thread
Scroll effects compile to compositor-driven timelines rather than JavaScript running every frame, and sections that animate release their memory once off screen. An independent audit graded every animation on the page at its top tier, which is why blocking time on a throttled phone is twenty milliseconds.
Operations
The metrics a team lives with after launch
| Metric | This platform | Typical enterprise build | Verdict |
|---|---|---|---|
| Edit to fresh at the origin | ~1 s, contracted | Rebuild, 2–20 min | Ahead |
| Edit to fresh worldwide | 5–30 s, contracted | Minutes to a nightly rebuild | Ahead |
| Lost webhook self-heal | 5 min or less | Manual purge | Ahead |
| Catalogue change reaching the page | Seconds with webhooks | Seconds to hours | Level |
| Same, webhooks off | 250 s measured | — | Level |
| Wiring a store to the platform | ~30 min | Days | Ahead |
| New tenant infrastructure | ~2 h | Weeks | Ahead |
| Brief to live | 2–6 weeks | 2–10 months | Ahead |
| Rollback | One command, nothing to un-migrate | Often a database migration | Ahead |
| Automated tests in the deploy gate | 158 unit, 12 browser | Varies | Level |
| Failure domain | Cluster and database shared | Dedicated per client | Behind |
Where it loses
Three things a serious review would flag
Security response headers are missing. Checked live: strict transport security, content type options, frame options, referrer policy, content security policy and permissions policy are all absent, and the response names the framework. Nothing is exploitable on a marketing site, but it reads as an unfinished hardening pass, and in procurement that costs more than the risk. It is roughly half a day to close.
No real-user performance data yet. Every speed figure here is a lab run or a synthetic request. Chrome publishes field data once a site has twenty-eight days of qualifying traffic. Until then the honest phrasing is lab, on this date, and that is how the numbers are labelled.
Tenants share a cluster and a database instance. Each client gets its own content system, database schema, media storage and credentials. The cluster, the database instance and the build pipeline underneath are shared, so an outage there reaches everyone at once. This is disclosed in the data processing agreement rather than discovered later.
Questions
What engineers ask
- Is this a static site generator?
- No. Pages render on demand and are cached at four levels, so content changes appear in seconds without a rebuild. A static generator has to rebuild and redeploy for every edit, which is why publishing on those stacks is measured in minutes.
- What happens when the content system is down?
- The edge keeps serving the last good version and the shared cache fails open, degrading to in-memory caching rather than to an error page. The site has also been verified rendering from a content export with the content system deliberately unreachable.
- Can we host it ourselves?
- Yes. The same container image runs on a plain container host or your own cluster. The two cloud-specific layers are switched on by environment variable and their absence degrades to portable tag-based caching. A source licence for your storefront is available.
- How do you know the animation is not costing us performance?
- It is audited. Scroll-linked values compile to compositor timelines, and the audit reports every animation on the page at its top tier with total blocking time of twenty milliseconds on a throttled phone.
Check the numbers yourself
Time to first byte, edge behaviour and the full caching contract are all reproducible from a terminal. Ask and we will walk your engineer through the run on a call.
Talk to us