CSS‑in‑JS Runtime Cost Simulator - Online Render 1000 Nodes
Render 1000 styled elements using inline styles vs. CSS classes and compare time. Understand CSS‑in‑JS trade‑offs.
UD5 Toolkit
Real-time page asset load analysis via Performance API
| # | Name | Size | Duration | Waterfall | ||||
|---|---|---|---|---|---|---|---|---|
|
No data yet Click "Scan Page" to analyze current page resources or "Demo Data" to see a sample. |
||||||||
The Resource Timing API is a browser performance interface that provides detailed timing information for each resource loaded by a web page. It exposes metrics like DNS lookup time, TCP handshake duration, SSL negotiation, Time to First Byte (TTFB), and content download time for every asset (JS, CSS, images, fonts, XHR, etc.). This data is accessible via performance.getEntriesByType('resource') and is invaluable for diagnosing front-end performance bottlenecks.
Timing fields can be zero for several reasons: (1) Cached resources — browsers serve cached assets instantly, skipping DNS/TCP/SSL phases. (2) Cross-origin restrictions — if the resource server doesn't include the Timing-Allow-Origin response header, detailed timing data is obscured for security reasons. (3) Reused connections — HTTP/2 and HTTP/3 multiplex requests over a single connection, so DNS/TCP may already be established. (4) Same-origin resources typically expose full timing data.
Time to First Byte (TTFB) measures the time from the initial request until the first byte of the response arrives. It's calculated as responseStart - requestStart. A high TTFB indicates server-side slowness (database queries, API processing, network latency). Google recommends TTFB under 200ms for optimal performance. TTFB is a critical metric because nothing can render until the first byte arrives.
Use this tool to sort by Duration (descending) or enable the "Slow only (>1s)" filter. Look for resources with high TTFB (server issue), long download times (large files), or multiple sequential DNS/TCP phases (too many unique domains). The waterfall chart visually highlights long bars. Common culprits include unoptimized images, bloated JavaScript bundles, and third-party scripts.
A transferSize of 0 typically indicates the resource was served from the browser cache (304 Not Modified or cached locally). It may also appear as 0 for cross-origin resources without the Timing-Allow-Origin header. In this tool, we label these as "Cached" or "Unknown" to help you distinguish. Cached resources are great for performance!
You can Export CSV to open in Excel/Google Sheets, or Copy JSON to share raw Performance API data. You can also Import previously saved JSON data or data collected from Chrome DevTools using JSON.stringify(performance.getEntriesByType('resource')). This makes it easy to compare page loads or share findings with your team.
These phases represent the network connection lifecycle: DNS Lookup — resolving the domain name to an IP address. TCP Handshake — establishing a reliable connection (SYN, SYN-ACK, ACK). SSL/TLS Negotiation — encrypting the connection (only for HTTPS). Request — sending the HTTP request. TTFB — waiting for the server to process and start responding. Download — receiving the response body. Each phase adds latency; minimizing them improves load speed.
This tool analyzes the current page you're viewing using the browser's built-in Performance API. To analyze a different website, open that website in your browser, then run this tool on that page (or use a bookmarklet). You can also use Chrome DevTools → Performance tab → record a page load → export the data and import it here using the Import button.
Render 1000 styled elements using inline styles vs. CSS classes and compare time. Understand CSS‑in‑JS trade‑offs.
Configure how your PWA launches: focus existing or create new. Test with the launch_handler manifest field.
Compress and decompress text using the browser's native Compression Streams API. See the binary output size.
Query the permission state of camera, microphone, geolocation, and more. See the response and learn the API.
Connect a game controller and see every button press, axis movement, and vibration test. Uses the Gamepad API.
Unified input demo: see pressure, tilt, and type from any pointer. Compare pointerType values. Essential for drawing apps.
Toggle a screen wake lock to prevent the device from dimming or sleeping. See the lock state and learn the API.
Measure your browser's GPU compute power using a simple WebGPU matrix multiplication. See raw FLOPS and compare with peers. Fully client‑side.
Decode an image progressively using the ImageDecoder API. See partial results and metadata. Modern alternative to <img>.
Decode individual video frames from a local file using the VideoDecoder API. Step through frames. Cutting‑edge browser feature.
Experiment with the Federated Credential Management API. Simulate a sign‑in flow without third‑party cookies. Privacy‑first.
Request HID devices and list them. Read input reports and send output. For custom hardware and controllers.
Request permission and detect when the user is idle (away from keyboard). See screen lock state. For native‑like apps.
Demonstrate how the Web OTP API automatically reads one‑time codes from SMS (mobile). Simulation with a fake SMS input.
Acquire and release locks across tabs. Prevent race conditions in IndexedDB or localStorage. Visual queue and lock state.
Connect a gamepad and see all button presses and axis movements visually. Check that every input is detected correctly.
Trigger different vibration patterns on mobile devices. Test if your phone supports haptic feedback. Simple demo.
Display your effective connection type (4g, 3g, etc.) and downlink speed using the Navigator API. Adapt your app accordingly.
See your device's battery level, charging status, and discharge time using the Battery Status API. Fun utility.
Check current screen orientation and test the lock API. Useful for mobile web apps. Demo with code.
Test the new HTML popover attribute for creating accessible tooltips, menus, and dialogs without JavaScript. Copy code snippets.
See the View Transitions API in action. Cross‑fade and morph between two states. Copy the JavaScript starter code.
Experiment with the Async Clipboard API: read/write text and images from the clipboard. Verify permissions and see demo code.
Test the Web Share API by sharing text, links, and files directly from the browser. Check compatibility and see example code.
Enter an API URL and quickly check its HTTP status code and response time. See response headers and body. Browser fetch.
Pick a method, URL, headers, and body, then send an HTTP request directly from your browser. Debug APIs easily.
Enter a URL and get a one‑page report of titles, description, headings, image alts, and broken links. All from browser.
Generate random JSON data with customizable fields (users, products, orders). Useful for frontend mocking. All local.
Enter a URL and get a rough client-side performance simulation: request count, DOM size, and potential speed tips. No real Lighthouse.
Execute GraphQL queries against any endpoint with variables and headers. Explore schema via introspection. All requests made directly from your browser.