googlechromelabs/quicklink

⚡️Faster subsequent page-loads by prefetching in-viewport links during idle time

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 45 minutes ago
Added to GitGenius on September 5th, 2026
Created on November 23rd, 2018
Open Issues & Pull Requests: 37 (+0)
GitHub issues: Enabled
Number of forks: 426
Total Stargazers: 11,284 (+0)
Total Subscribers: 92 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 9.6 days
Mean response time: 401.8 days
90th percentile: 1008.0 days
Tracked items: 16

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 5
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,308 days
Stale 30+ days: 4
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • good first issue (5)
  • enhancement (4)
  • docs (3)
  • help wanted (2)
  • bug (1)
  • dependencies (1)
  • invalid (1)
  • site (1)

Most active issues this week

Detailed Description

quicklink is a prefetching library that speeds up subsequent page loads by automatically prefetching or prerendering in-viewport links during idle browser time.

The library works by detecting links visible in the viewport using the Intersection Observer API, waiting for the browser to become idle via requestIdleCallback, and checking connection quality before prefetching or prerendering those URLs. It respects slow connections and data-saver preferences by skipping prefetching when either is detected. The tool supports multiple prefetching strategies including link rel=prefetch, XHR requests, and the Speculation Rules API for prerendering, with configurable request priority that can fall back to fetch() when supported.

Quicklink suits any site seeking a lightweight, drop-in prefetching solution without complex configuration. It works with both multi-page applications via direct initialization and single-page applications like React through a higher-order component wrapper. The library is designed to be minimal, shipping at under 2KB minified and gzipped, with a modern ES module build available for browsers with native module support. The tool provides a reset function for clearing cached URLs and observers between page navigations or after significant DOM changes, making it suitable for dynamic applications.

Development activity shows consistent maintenance with passing continuous integration checks. The project maintains multiple build outputs to serve different browser support requirements. Documentation covers both traditional multi-page app integration and modern single-page app patterns with concrete examples. The codebase includes configuration options for controlling prefetch behavior, such as toggling between prefetch and prerender modes.