Lighthouse audit showing NO_FCP error with Afitpilot Lite stuck on a white screen.

Afitpilot Lite Performance Fix: From Two-Minute Load to Instant App

The recent Afitpilot Lite performance fix was a breakthrough. Early test builds of Afitpilot Lite suffered from extreme slowdowns, with loading times stretching over two minutes.

“It takes over two minutes to load, then just hangs on a white screen.”

For a product built on speed and adaptability, this was unacceptable. Lighthouse wouldn’t even register a First Contentful Paint (FCP). We were staring at the dreaded NO_FCP error. Something was fundamentally broken.

The Symptom: White Screen of Death

  • Loading screen stuck on “Loading Afitpilot™ Lite…”
  • No network requests firing
  • No visible errors in the console
  • Lighthouse failing outright

It looked like the app wasn’t even starting.

The Culprit: Tailwind CSS

After digging deeper, we realized JavaScript was fine — the Vue app was trying to mount, but CSS was blocking everything.

Specifically, this in /web/index.css:

@tailwind base;
@tailwind components;
@tailwind utilities;

Vite’s PostCSS pipeline was hanging indefinitely when processing Tailwind. That meant no CSS, no DOM paint, and no app.

The Afitpilot Lite Performance Fix Explained

The key to the Afitpilot Lite performance fix was replacing Tailwind directives with manual utilities:

  1. Manual Utility Classes
    • We wrote out only the CSS utilities the app actually uses.
    • Same utility-first style, but no compilation step.
  2. Async CSS Loading
    • CSS imports now load asynchronously so the app never blocks.
  3. Extra Optimizations
    • Lazy loading for heavy Vue components.
    • Timeout protection for network requests.
    • Smarter Google Fonts loading (preload + preconnect).
    • Firebase auth delayed by 100ms so it doesn’t block the UI.

Results: Instant App

The Afitpilot Lite performance fix reduced loading times from two minutes to under five seconds.

Before:

  • Load time: 2+ minutes
  • FCP: Never
  • User experience: dead white screen

After:

  • Load time: < 5 seconds
  • FCP: immediate
  • User experience: styled, responsive app right away

Lessons Learned

  1. CSS can kill performance. Don’t assume it’s just “styling.”
  2. Tailwind is powerful, but not free. If PostCSS hangs, your entire app goes with it.
  3. Always isolate imports when debugging. CSS was the last thing we expected.
  4. Non-blocking everything. Fonts, auth, requests, CSS — nothing should stop your app from rendering.

Why This Performance Fix Matters for Afitpilot Lite

In an adaptive coaching app like Afitpilot, trust is everything. If athletes open the app and see a two-minute white screen, they’re gone. Fixing this bottleneck didn’t just improve load times — it made the product usable.


🔧 Technical takeaway: Sometimes the simplest solution (plain CSS) outperforms the trendy one.

🚀 Product takeaway: Never let performance slip below user expectations. Reliability is the first feature.


Ressources:

Articles:

For deep thinkers, creators, and curious minds. One post. Zero noise.

We don’t spam! Read our privacy policy for more info.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *