Two slow intros removed, and what they were hiding fixed
Performance passes on vandatateam.com and vanaxity.com, measured before and after on the same machine.
Delivered10/2026
- Client
- Van Data Team
- Role
- Contract work: both passes and the reports
- Period
- 10/2026
- Proof
- 10 claims
- With
- Tran Tien Van
- Stack
- Next.js · Playwright · Lighthouse · WebGL · CSS
- 1ProblemIntros hid the pages for up to 6 seconds and bundles shipped the whole blog.
- 2BuildRemoved the intros, moved WebGL to a worker, split bundles, stopped idle repaints.
- 3ResultHero visible on desktop at 526 ms instead of 4,493 ms.
Problem
On vandatateam.com an intro overlay held the home page for three to six seconds on desktop. It was unmounted and mounted again during hydration, so the page flashed into view and was then covered again. The client bundles also shipped the whole blog to every visitor.
On vanaxity.com a full-screen intro hid the headline, and once it finished the idle page kept repainting itself.
Build
I removed both intros and then fixed what they had been covering. On vandatateam.com the WebGL scene moved into a Web Worker with OffscreenCanvas, client bundles were split so blog copy stays on the server, and long pages got content-visibility.
On vanaxity.com the intro became a short CSS-only entrance that animates transform and opacity and starts before hydration. Decorative loops pause off screen, and scrolling went back to the compositor.
Both builds were measured as production servers on the same machine, back to back in alternating order, so background load hit both equally.
Result
The top of the page became visible on desktop in 526 ms instead of 4,493 ms P1, and mobile layout shift from 0.160 to 0 P2. JavaScript loaded in the first 6 seconds went from 2,425 KB to 695 KB P3, and the blog's initial JavaScript from 1,456 KB to 272 KB P4.
On vanaxity.com the headline is readable at 716 ms instead of 5,436 ms on desktop P6, the idle main thread on a throttled phone went from 95.6% busy to 3.7% P7, and 30 of 30 behaviour checks pass in three browsers P8.
Show as a table
| Measure | Before | After | Source |
|---|---|---|---|
| Top of the page visible on desktop | 4,493 ms | 526 ms | P1, as of 21 Oct 2026 |
| Mobile layout shift (CLS) | 0.16 | 0 | P2, as of 21 Oct 2026 |
| JavaScript loaded in the first 6 seconds | 2,425 KB | 695 KB | P3, as of 21 Oct 2026 |
| Initial JavaScript on /blog | 1,456 KB | 272 KB | P4, as of 21 Oct 2026 |
| Lighthouse mobile score, home page | 84 | 90 | P5, as of 21 Oct 2026 |
| Headline readable on desktop | 5,436 ms | 716 ms | P6, as of 21 Oct 2026 |
| Idle main-thread time on a throttled phone | 95.6% | 3.7% | P7, as of 21 Oct 2026 |

What went wrong
While editing 69 machine-translated Vietnamese posts against the English originals, I found 8 where the translation had renamed a frontmatter key, which silently removed the call to action P9. Nothing failed; the button was just gone.
Limits
Lighthouse scores here are local, simulated medians; field data on real phones will differ. On phones the vanaxity headline now plays a short entrance instead of appearing at first paint. LCP did not change, and I kept one entrance on all screens.
My part
Van owns the sites and the agency. I did both passes, wrote the measurement scripts and the reports. On vandatateam.com, 403 of the 938 commits are mine P10.
My commits on vandatateam.com403 / 938 · 43%
Links
Proof of delivery · NLV-26-PRF
| # | Claim | Evidence | As of | Confidence |
|---|---|---|---|---|
| P1 | The top of the page became visible on desktop in 526 ms instead of 4,493 ms. |
| 21 Oct 2026 | I hold the artifact |
| P2 | Mobile layout shift went from 0.160 to 0. |
| 21 Oct 2026 | I hold the artifact |
| P3 | JavaScript loaded in the first 6 seconds went from 2,425 KB to 695 KB. |
| 21 Oct 2026 | I hold the artifact |
| P4 | Initial JavaScript on the blog went from 1,456 KB to 272 KB. |
| 21 Oct 2026 | I hold the artifact |
| P5 | Lighthouse mobile score on the home page went from 84 to 90 (local, median of 5 runs). |
| 21 Oct 2026 | I hold the artifact |
| P6 | On vanaxity.com the headline became readable at 716 ms instead of 5,436 ms on desktop. |
| 21 Oct 2026 | I hold the artifact |
| P7 | With the page idle, the main thread on a throttled phone went from 95.6% busy to 3.7%. |
| 21 Oct 2026 | I hold the artifact |
| P8 | 30 of 30 behaviour checks pass in Chrome, Firefox and WebKit. |
| 21 Oct 2026 | I hold the artifact |
| P9 | Edited 69 machine-translated Vietnamese posts against the English originals and found 8 where a renamed frontmatter key had removed the call to action. |
| 21 Oct 2026 | I hold the artifact |
| P10 | 403 of the site's 938 commits are mine. |
| 21 Oct 2026 | I hold the artifact |