description Boomerang.js Overview
Boomerang.js is an open source JavaScript library designed for web performance analysis. It simulates a user’s browsing experience to measure website loading speed directly within a browser. Primarily used by developers and site owners seeking to identify and resolve bottlenecks impacting page load times. The tool integrates with Akamai's Web Page Test, offering insights into issues like image optimization and render-blocking resources.
help Boomerang.js FAQ
Is Boomerang.js the same as Akamai mPulse, or are they separate products?
Boomerang.js is the open-source JavaScript library originally created by Philip Tellis that powers Akamai mPulse, Akamai's commercial Real User Monitoring (RUM) product. The library itself is freely available on GitHub under a BSD license, while mPulse wraps it with enterprise analytics, dashboards, and alerting. Organizations can use the open-source Boomerang.js standalone, though mPulse adds pre-built reporting and integration with Akamai's CDN insights.
Does Boomerang.js capture Core Web Vitals like LCP, FID, and CLS?
Yes, Boomerang.js includes plugins that capture Core Web Vitals metrics including Largest Contentful Paint (LCP), First Input Delay (FID)/Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS). These are gathered from the browser's Performance APIs and sent via beacon to a configured backend endpoint. This allows organizations to track real-user Core Web Vitals data across their production traffic rather than relying solely on lab tools like Lighthouse.
How does Boomerang.js handle single-page applications built with React or Angular?
Boomerang.js includes a dedicated SPA plugin that instruments route changes and measures the time from navigation initiation to meaningful content render in frameworks like React, Angular, and Vue. Since single-page apps don't trigger traditional page loads after the initial request, the SPA plugin patches history API calls to capture client-side navigation events. This is critical because the standard Navigation Timing API only records full page loads.
How does Boomerang.js send performance data without blocking page performance?
Boomerang.js uses a deferred beacon approach, typically sending data via a 1x1 pixel image request or the navigator.sendBeacon API after the page has loaded and the browser is idle. The library loads asynchronously and waits for the window load event before collecting most metrics. This design ensures that the monitoring code itself does not become a render-blocking resource or impact the page's own performance scores.
explore Explore More
Similar to Boomerang.js
See all arrow_forwardReviews & Comments
Write a Review
Be the first to review
Share your thoughts with the community and help others make better decisions.