Services

Pagespeed Desktop Review 2026 06 16


PageSpeed desktop review — www.assistance.bg — 2026-06-16

Scope: prioritized no-code review of the provided PageSpeed Insights desktop snapshot for https://www.assistance.bg/, with source mapping to the repo surface that owns the live page.

Evidence baseline#

This review is based on the embedded Lighthouse JSON in the provided PageSpeed UI route, extracted with curl from https://pagespeed.web.dev/analysis/https-www-assistance-bg/trv6ytaqof?form_factor=desktop. It is not based on a fresh PageSpeed run.

FieldEvidence
Audited URLhttps://www.assistance.bg/
Final URLhttps://www.assistance.bg/
Lighthouse version13.3.0
Form factordesktop
Fetch time2026-06-16T08:49:08.185Z
User agentHeadlessChrome/137 desktop UA
Field dataunavailable for URL and origin: generic::not_found
ScoresPerformance 90, Accessibility 95, Best Practices 100, SEO 100

Lab metrics:

MetricDisplay valueNumeric value
First Contentful Paint0.6 s583.4895 ms
Largest Contentful Paint1.6 s1568.989 ms
Total Blocking Time110 ms109.5 ms
Cumulative Layout Shift00
Speed Index1.7 s1700.4479862829763 ms
Time to Interactive1.6 s1568.989 ms

The report is lab-only because CrUX field data is unavailable for both the page URL and origin. Key diagnostic totals: 800 KiB network payload, 1.0 s JavaScript execution, 1.6 s main-thread work, 5 long tasks, and 34 non-composited animated elements.

Source mapping#

The live/source target for this review is apps/www.

Evidence:

  • README.md identifies apps/www as the marketing site.
  • .mise.toml deploys apps/www/.next-build to Cloudflare Pages project assistance-www with cf:deploy:www.
  • apps/www/wrangler.toml declares name = "assistance-www" and pages_build_output_dir = ".next-build".
  • apps/www/next.config.mjs is a static Next export with output: 'export' and distDir set from NEXT_DIST_DIR.
  • apps/www/public/_headers contains production rules for www.assistance.bg and immutable caching for /_next/static/*.
  • The PageSpeed report and live HTML use Next /_next/static/* assets, matching apps/www rather than a Vite /assets/* app.

Earlier uncertainty around an apps/marketing production owner should be treated as stale or ambiguous for this URL. Do not use apps/marketing as the remediation target unless new deployment evidence contradicts the current apps/www mapping.

Prioritized findings#

P1 — Third-party analytics is the largest named desktop cost#

What PageSpeed reports:

  • Unused JavaScript: 104 KiB / 160 ms.
  • Google tag script: https://www.googletagmanager.com/gtag/js?id=G-3KQWLZJ69Q.
  • GTM transfer/main-thread cost: 159,457 bytes / 136.95 ms.

Repo mapping:

  • apps/www/app/providers.tsx defers telemetry until interaction, scroll, touch, keydown, or a 3s idle fallback.
  • The deferred block mounts TelemetryTagManager, GoogleAnalytics, and PageTelemetry from the shared common package.

Recommended next actions:

  1. Verify whether the 3s idle fallback causes analytics to load during Lighthouse collection without real user intent.
  2. Audit the GTM container and remove unused tags/triggers.
  3. If business requirements allow, keep analytics behind stronger user-intent or consent gates for the initial page load.
  4. Prefer a minimal direct gtag setup over GTM if the container remains heavier than its value.

P1 — Landing page JavaScript has avoidable unused/hydration work#

What PageSpeed reports:

  • Unused app JavaScript includes https://www.assistance.bg/_next/static/chunks/6258-ff03de593974c853.js.
  • JavaScript execution time is 1.0 s.
  • Main-thread work is 1.6 s.
  • Lighthouse found 5 long tasks.

Repo mapping:

  • apps/www/app/page.tsx renders the full homepage route: hero, products, use cases, code examples, features, capabilities, global reach, testimonials, trust indicators, and CTA.
  • apps/www/app/providers.tsx globally mounts auth, feature flags, dev toolbar provider, theme, Framer Motion LazyMotion, tooltip provider, command provider/menu, form dialog provider, toaster, telemetry, and DevToolbar.
  • apps/www/package.json includes heavy interactive libraries such as framer-motion, @react-three/fiber, @react-three/drei, three, cobe, Recharts, MDX/code tooling, command-menu dependencies, and form/dialog dependencies.
  • apps/www/components/Global/GlobalReach.tsx already lazy-loads the 3D globe with ssr: false, but it remains part of the homepage interaction surface.

Recommended next actions:

  1. Run the Next bundle analyzer for apps/www and identify the module composition of chunk 6258.
  2. Use Chrome Coverage on the verified www.assistance.bg page to identify unused providers and below-the-fold client sections.
  3. Move command menu, form dialog rendering, dev tooling, and other non-critical global UI behind explicit user intent where feasible.
  4. Keep above-the-fold hero content static/server-rendered and split below-the-fold interactive sections independently.

P2 — Render-blocking and unused CSS are modest but clear wins#

What PageSpeed reports:

  • Render-blocking Next CSS: 190 ms.
  • Unused CSS: 39 KiB in https://www.assistance.bg/_next/static/css/cbd9d7e6ca22c268.css.

Repo mapping:

  • apps/www/app/layout.tsx globally imports @code-hike/mdx/styles, config/code-hike.scss, and ../styles/index.css.
  • apps/www/styles/index.css is the broad global style surface for the app.

Recommended next actions:

  1. Confirm whether Code Hike CSS is needed on the homepage or only on MDX/code-heavy routes.
  2. Keep design tokens and resets global, but route-scope heavy MDX/code/component CSS where possible.
  3. Re-check LCP/FCP and render-blocking time after CSS scoping.

P2 — Legacy JavaScript adds secondary compatibility bytes#

What PageSpeed reports:

  • Legacy JavaScript savings: 21 KiB.
  • Affected chunks include 5908 and 6258.

Repo mapping:

  • apps/www/next.config.mjs controls Next transpilation and explicitly transpiles several workspace/shared packages.
  • apps/www/package.json pulls in a broad dependency set; legacy output should be attributed by bundle analyzer before changing browser targets.

Recommended next actions:

  1. Identify the exact legacy transforms from Lighthouse and bundle output.
  2. Confirm the production browser support policy.
  3. Avoid transpiling modern dependencies unless required by the actual support matrix.

P2 — Forced reflow and non-composited animations create CPU risk#

What PageSpeed reports:

  • Forced reflow: 82.45 ms.
  • Non-composited animated elements: 34.

Repo mapping:

  • apps/www/styles/index.css defines broad animation and transition behavior.
  • apps/www/components/Effects/SpotlightCursor.tsx reads getBoundingClientRect() on every mousemove and updates React state.
  • apps/www/components/Global/GlobalReach.tsx and multiple homepage sections use Framer Motion in-view animations.

Recommended next actions:

  1. Use a Chrome Performance trace to identify exact forced-reflow initiators before rewriting animations.
  2. Prefer transform and opacity for animation; avoid layout-affecting properties.
  3. Throttle pointer-driven effects or move them to CSS variables/requestAnimationFrame instead of React state per mousemove.
  4. Respect prefers-reduced-motion and disable decorative motion on low-power contexts.

P3 — Accessibility issues are small but concrete#

What PageSpeed reports:

  • Accessibility score: 95.
  • Failing audits: heading order and touch targets.

Likely repo mapping:

  • Heading order: homepage/footer heading components under apps/www/components/*.
  • Touch targets: testimonial dot buttons in apps/www/components/Testimonials/*.

Recommended next actions:

  1. Fix heading levels semantically without changing visual hierarchy.
  2. Increase testimonial dot hit areas/spacing while preserving the visual design.
  3. Re-run Lighthouse Accessibility or axe against the verified deployment.
  1. Treat apps/www as the remediation target unless new deployment evidence supersedes it.
  2. Trim/defer GTM and analytics first; this is the largest named transfer/main-thread offender.
  3. Identify chunk 6258 with bundle analyzer and reduce unused app JavaScript from global providers and below-the-fold sections.
  4. Scope homepage-unused CSS, especially MDX/Code Hike styles if coverage confirms they are unused on /.
  5. Fix forced reflow and non-composited animation sources from trace evidence.
  6. Clear the heading-order and testimonial touch-target accessibility findings.

Follow-up success criteria#

  • Performance remains at or above 90 while third-party transfer and main-thread time decrease.
  • Unused JavaScript drops materially from 104 KiB, with GTM and app chunk contributions tracked separately.
  • Render-blocking CSS stays below 190 ms and unused CSS drops from 39 KiB.
  • Forced reflow drops below 82.45 ms and non-composited animation warnings decrease.
  • Accessibility heading-order and touch-target failures are fixed or explicitly accepted with rationale.