Dashboard cold-load performance
- for
- Veritran
- when
- 2026
- Problem
- A recommendation dashboard took 10–20 seconds to show anything on a cold load.
- My contribution
- Owned one performance change in a recommendation app.
- Delivered
- Lighthouse cold-load FCP under 200 milliseconds. Self-reported; I owned this change only.
- Result
- Lighthouse cold-load FCP under 200 milliseconds, with the real chart data shown while the AI sections finish.
- Status
- demo stage · 2026
<200 mscold-load first paint, from 10–20 s (self-reported)
what I foundThe slow part was the AI-generated sections, and the first paint waited for them.
Nothing paints until every section, the generated ones included, is ready.
Nothing paints until every section, the generated ones included, is ready.The real chart and table data paint first; generated sections show a loading state, then fill in.
render path
Data first, the slow part after
- 1Cold loadthe page asks for its data
- 2Charts return firstthe callback returns the real chart and table data without waiting for generated text
- 3Slow work moves outthe slow LLM calls run on background worker threads
- 4Users read the dataslower sections stay in a loading state while people inspect the real data
guards
What keeps the slow work in check
- Semaphorelimits how many slow generations run at once
- Retrya failed generation is tried again
- Request-id guarda late result for an old request is not shown in place of the current one
- Pollingthe interface checks every two seconds for completed reports
- Cachesuccessful responses are cached by context and features
limit
First paint is not readiness
This improves first render, not AI generation time. The checked-in code polls for completed results; it does not stream tokens.
ownership
Who did what, and when
- cold load waited for everything
- charts first, slow work in the background
- measured with Lighthouseself-reported
- first paint under 200 ms
- MeThis one performance change: charts first, slow generation in the background
- The rest of the recommendation appNot mine
- AI generation timeUnchanged; only the first render improved
- Lighthouse reportSelf-reported; no report was saved
What shipped
Cold-load first paint went from 10–20 seconds to under 200 milliseconds.
self-reported Lighthouse result; no report was saved- Lighthouse cold-load FCP improved from 10–20 seconds to under 200 milliseconds.
Method and caveats
Self-reported Lighthouse result; no report was saved. FCP is not a full usability or inference-completion metric. Deployment to a customer was not confirmed, so this is shown as demo stage.
- Lighthouse cold-load FCP, 10–20 seconds before and under 200 milliseconds after: self-reported, no saved report
- FCP is not a full usability or inference-completion metric
- Ownership: this one change only. Deployment to a customer was not confirmed, so the stage is demo
- Section names and the before/after page above are a reconstruction