Skip to content

feat: Core Web Vitals monitoring with regression alerts#492

Merged
RUKAYAT-CODER merged 7 commits into
rinafcode:mainfrom
Tboy123-emm:feat/core-web-vitals-monitoring
May 30, 2026
Merged

feat: Core Web Vitals monitoring with regression alerts#492
RUKAYAT-CODER merged 7 commits into
rinafcode:mainfrom
Tboy123-emm:feat/core-web-vitals-monitoring

Conversation

@Tboy123-emm
Copy link
Copy Markdown
Contributor

@Tboy123-emm Tboy123-emm commented May 29, 2026

closes #247

- Add webVitals service using web-vitals library (LCP, FID, CLS, FCP, TTFB)
- Rate each metric as good/needs-improvement/poor against Google thresholds
- Report metrics to mobileAnalyticsService on each measurement
- Detect regressions (>20% above baseline) and fire WEB_VITALS_REGRESSION event
- Add PerformanceMetric and AnalyticsEvent entries for all 5 vitals + regression
- Call webVitalsService.init() in App.tsx at startup
- Add 15 unit tests covering thresholds, ratings, event mapping, and regression detection
- Fix missing comma in package.json scripts section (merge artifact)
- Regenerate package-lock.json from merged package.json
@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 29, 2026

@Tboy123-emm Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

- Add warmCriticalCaches() that parallel-fetches courses + user profile
- Replace fake 500ms delay in prepareApp with real cache warming
- Failures are swallowed so warming never blocks startup
- 6 unit tests covering all branches
@RUKAYAT-CODER
Copy link
Copy Markdown
Contributor

Kindly resolve conflict and fix workflow.

Resolved conflicts in:
- App.tsx: merged imports (warmCriticalCaches, webVitalsService, prefetchExternalResources),
  removed duplicate requireEnvVariables/appLogger imports, kept both data fetch
  step and cache warming in startup sequence
- package-lock.json: regenerated from merged package.json
…ring

Kept clean import resolution: warmCriticalCaches, webVitalsService,
prefetchExternalResources without duplicates. Startup sequence runs
data fetch then cache warming.
@Tboy123-emm
Copy link
Copy Markdown
Contributor Author

fixed workflow no conflicts

@RUKAYAT-CODER RUKAYAT-CODER merged commit 78a1d7a into rinafcode:main May 30, 2026
0 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Core Web Vitals monitoring and reporting

2 participants