Back to Playground
EssentialšŸ”’ Requires Permission

Device Information Dashboard

Comprehensive view of all device and browser capabilities including geolocation, battery, network, screen info, storage, and more.

Browser Support

Chromeāœ“Firefoxāœ“Safari◐Edgeāœ“

āš ļø Permission Required

This demo requires explicit permission to access sensitive device data. Your browser will ask for permission before sharing this information. You can always deny access or revoke permissions later in your browser settings.

Understanding Data Access & Privacy

āœ“ No Permission Needed

This data is automatically available to all websites without asking for your consent. It's used for responsive design, feature detection, and improving user experience.

Examples: Browser type, screen size, language, timezone, storage quota

šŸ”’ Requires Permission

Your browser will ask for explicit permission before sharing this sensitive data. You can always deny access or revoke permissions later in browser settings.

Examples: GPS location, camera/microphone, device motion/orientation (iOS)

Browser Informationāœ“ No Permission Needed

User Agent: Node.js/24

Platform: Linux x86_64

Language: en-US

Languages: en-US

Online Status: Offline

Cookies Enabled: No

Do Not Track: Not set

Screen Informationāœ“ No Permission Needed

Screen Width: N/Apx

Screen Height: N/Apx

Available Width: N/Apx

Available Height: N/Apx

Color Depth: N/A bits

Pixel Depth: N/A bits

Pixel Ratio: N/A

Orientation: N/A

Window Informationāœ“ No Permission Needed

Inner Width: N/Apx

Inner Height: N/Apx

Outer Width: N/Apx

Outer Height: N/Apx

Scroll X: N/Apx

Scroll Y: N/Apx

GeolocationšŸ”’ Requires Permission

Requesting location access...

Battery Informationāœ“ No Permission Needed

Battery API not supported

Network Informationāœ“ No Permission Needed

Network Information API not supported

Device Capabilitiesāœ“ No Permission Needed

Touch Support: No

Hardware Concurrency: 2 cores

Device Memory: N/A

PDF Viewer: Disabled

WebGL: Not Supported

WebRTC: Not Supported

Service Worker: Not Supported

Notifications: Not Supported

Device OrientationšŸ”’ Requires Permission

Alpha (Z-axis): 0°

Beta (X-axis): 0°

Gamma (Y-axis): 0°

* Tilt your device to see orientation changes
* iOS 13+ requires explicit permission

Device Motion (Acceleration)šŸ”’ Requires Permission

X-axis: 0 m/s²

Y-axis: 0 m/s²

Z-axis: 0 m/s²

* Move your device to see acceleration changes
* iOS 13+ requires explicit permission

Media DevicesšŸ”’ Requires Permission

No media devices found or permission not granted

Storage Informationāœ“ No Permission Needed

Storage Quota API not supported or loading...

localStorage: Not Available

sessionStorage: Not Available

IndexedDB: Not Available

Cookies: None

Browser Featuresāœ“ No Permission Needed

Clipboard API: Not Available

Geolocation API: Not Available

Vibration API: Not Available

Battery API: Not Available

Network Info API: Not Available

Payment API: Not Available

Web Bluetooth: Not Available

Web USB: Not Available

Timezone & Timeāœ“ No Permission Needed

Timezone: UTC

Timezone Offset: 0 minutes

Current Time: 1/23/2026, 10:10:20 AM

Timestamp: 1769163020624

Why Websites Collect This Data: Real-World Use Cases

Every piece of device information has legitimate practical purposes. Here's how developers actually use this data in real projects.

Essential

Required for basic functionality

Enhancement

Improves user experience

Analytics

Understanding user behavior

Privacy Concern

Potential misuse risk

šŸ“±Screen Size & Resolution

Responsive Design

E-commerce sites like Amazon show different layouts on mobile vs desktop. On mobile (< 768px), they show a hamburger menu and single-column product grid. On desktop (> 1024px), they show sidebar navigation and multi-column layout.

// Detect mobile/desktop
if (window.innerWidth < 768) {
  showMobileLayout();
} else {
  showDesktopLayout();
}

Image Optimization

Netflix uses devicePixelRatio to serve high-quality images to Retina displays and lower quality to standard displays, saving 40% bandwidth for standard screens.

// Serve appropriate image quality
const imageSrc = window.devicePixelRatio > 1
  ? 'image@2x.jpg'  // High-res for Retina
  : 'image.jpg';     // Standard quality

Virtual Keyboard Detection

When you type in a form on mobile, Instagram detects the keyboard appearing (by watching screen height changes) and scrolls the input field into view automatically.

// Detect virtual keyboard
window.addEventListener('resize', () => {
  if (window.innerHeight < prevHeight) {
    // Keyboard appeared
    scrollInputIntoView();
  }
});

🌐User Agent & Browser Detection

Feature Compatibility

WhatsApp Web shows a warning if you're using Internet Explorer: 'This browser is not supported. Please use Chrome, Firefox, Safari, or Edge.' They detect IE through User Agent and prevent broken experiences.

// Detect unsupported browser
if (navigator.userAgent.includes('MSIE') ||
    navigator.userAgent.includes('Trident')) {
  showUpgradeBrowserMessage();
}

Bug Fixes & Workarounds

Google Docs applies Safari-specific CSS fixes because Safari has different rendering behaviors for contenteditable elements. They detect Safari and apply workarounds.

Download Links

When you visit Zoom's download page, it automatically highlights the right download button (Windows .exe, Mac .dmg, or Linux .deb) based on your platform from navigator.platform.

šŸ“Geolocation (GPS)

Location-Based Services

Uber uses your GPS location to show nearby drivers, calculate pickup time, and determine the route. Without geolocation, the core service wouldn't work.

Local Content

McDonald's website uses your location to find the nearest restaurant and show location-specific menu items and prices. Each location may have different menus and promotions.

navigator.geolocation.getCurrentPosition((pos) => {
  const lat = pos.coords.latitude;
  const lng = pos.coords.longitude;
  findNearestRestaurant(lat, lng);
});

Weather & News

Weather.com automatically shows your local weather forecast based on your GPS coordinates, without you having to type in your city name.

šŸŒLanguage & Timezone

Automatic Translation

AirBnB detects navigator.language and automatically shows content in Spanish if your browser is set to 'es-MX', saving you from manually selecting language.

// Auto-detect language
const userLang = navigator.language; // 'en-US'
const lang = userLang.split('-')[0];  // 'en'
loadTranslations(lang);

Time Display

Calendly uses your timezone (Intl.DateTimeFormat().resolvedOptions().timeZone) to show meeting times in your local time, even if the meeting was scheduled in a different timezone.

// Convert to user's timezone
const userTZ = Intl.DateTimeFormat()
  .resolvedOptions().timeZone;
const localTime = new Date(utcTime)
  .toLocaleString('en-US', { timeZone: userTZ });

Fraud Prevention

Banks compare your timezone with the timezone of your last login. If you logged in from New York 5 minutes ago and now from Tokyo, they flag it as suspicious and require additional verification.

šŸ’¾Storage Quota & Usage

Offline-First Apps

Google Docs checks storage quota before downloading files for offline use. If you're low on storage (< 50MB available), it warns you and asks which files to prioritize.

const estimate = await navigator.storage.estimate();
const available = estimate.quota - estimate.usage;
if (available < 50 * 1024 * 1024) {
  showLowStorageWarning();
}

Cache Management

Spotify Web Player monitors storage usage. When cache exceeds 500MB, it automatically deletes oldest songs to make room for new downloads, ensuring the app doesn't consume all your storage.

Progressive Web Apps

Twitter PWA checks available storage before caching images and videos. If storage is limited, it only caches text content and loads images on-demand.

šŸ“¶Network Speed & Type

Adaptive Streaming

YouTube detects your connection speed (navigator.connection.downlink) and automatically adjusts video quality. On slow 3G (< 1 Mbps), it serves 360p. On fast WiFi (> 5 Mbps), it serves 1080p or 4K.

const connection = navigator.connection;
if (connection.effectiveType === '4g') {
  loadHighQualityVideo(); // 1080p
} else if (connection.effectiveType === '3g') {
  loadMediumQualityVideo(); // 480p
} else {
  loadLowQualityVideo(); // 360p
}

Data Saver Mode

When you enable 'Data Saver' in Chrome, navigator.connection.saveData becomes true. Twitter detects this and stops auto-playing videos, loading only thumbnails to save your data.

Preloading Strategy

Medium.com checks your connection speed before preloading next article. On fast WiFi, it preloads 3 articles ahead. On slow 3G, it only loads the current article to avoid wasting bandwidth.

šŸ”‹Battery Level & Charging Status

Power Saving Features

Facebook detects when your battery is below 20% and not charging. It automatically reduces animations, stops video auto-play, and dims UI elements to extend battery life.

navigator.getBattery().then((battery) => {
  if (battery.level < 0.2 && !battery.charging) {
    enablePowerSavingMode();
    // Disable animations, reduce polling
  }
});

Download Management

Google Play Store pauses large app downloads when battery drops below 15% and resumes when you start charging, preventing your phone from dying mid-download.

āš™ļøCPU, RAM & Hardware

Performance Optimization

Google Maps checks navigator.hardwareConcurrency (CPU cores) and navigator.deviceMemory (RAM). On low-end devices (2 cores, 2GB RAM), it limits the number of map markers rendered at once to prevent lag.

const isLowEndDevice =
  navigator.hardwareConcurrency <= 2 ||
  navigator.deviceMemory <= 2;

if (isLowEndDevice) {
  renderSimplifiedGraphics();
  limitMapMarkers(50); // Max 50 markers
} else {
  renderFullGraphics();
  limitMapMarkers(500); // Max 500 markers
}

Game Settings

Cloud gaming services like GeForce NOW detect your device specs. On low-end devices, they automatically set graphics to 'Low', disable ray tracing, and cap framerate at 30fps.

šŸ‘†Touch Support & Input Method

UI Adaptation

Google Sheets detects touch support (navigator.maxTouchPoints > 0) and increases the size of cell borders and resize handles from 2px to 10px, making them easier to tap on touchscreens.

const isTouchDevice = navigator.maxTouchPoints > 0;
const buttonSize = isTouchDevice ? '44px' : '32px';
// Touch targets should be at least 44x44px

Interaction Patterns

Pinterest shows swipe indicators on touch devices but uses scroll bars on desktop. They detect touch support and adjust the UI accordingly.

šŸ“³Device Motion & Orientation

Gaming Controls

Racing games in the browser use device orientation as steering. Tilt your phone left to turn left, right to turn right. This creates an immersive mobile gaming experience.

window.addEventListener('deviceorientation', (e) => {
  const tilt = e.gamma; // -90 to 90
  steerCar(tilt);
});

AR Applications

IKEA Place app uses device orientation to overlay 3D furniture models in your room. As you move your phone, the furniture stays positioned correctly in space.

Shake Gestures

Yelp app detects phone shaking (using accelerometer) to trigger 'Shake to Search Nearby' feature, finding restaurants around you with a simple shake gesture.

šŸ“·Camera & Microphone

Video Conferencing

Zoom Web uses navigator.mediaDevices.getUserMedia() to access your camera and microphone. It also lists available devices so you can choose between front/back camera or multiple microphones.

// Request camera/mic access
const stream = await navigator.mediaDevices
  .getUserMedia({
    video: true,
    audio: true
  });

// List available devices
const devices = await navigator.mediaDevices
  .enumerateDevices();

QR Code Scanner

WhatsApp Web uses your phone camera to scan QR codes for login. The camera access is temporary and only used for scanning.

Photo Upload

Instagram detects available cameras and lets you choose between front/back camera when taking photos directly in the browser.

šŸ”ŒOnline/Offline Status

Offline Functionality

Gmail detects when you go offline (navigator.onLine = false) and shows a banner: 'No internet connection. Working offline.' It queues your emails and sends them when you're back online.

window.addEventListener('offline', () => {
  showOfflineBanner();
  queueActions(); // Save for later
});

window.addEventListener('online', () => {
  syncQueuedActions(); // Send queued data
});

Auto-Retry

Slack automatically retries failed messages when you come back online. It listens for the 'online' event and resends messages that failed during offline period.

šŸŖCookie & Storage Detection

Feature Fallbacks

Websites check if localStorage is available. If it's blocked (e.g., in private browsing), they fall back to cookies or session storage to maintain basic functionality.

// Check if localStorage is available
function isLocalStorageAvailable() {
  try {
    localStorage.setItem('test', 'test');
    localStorage.removeItem('test');
    return true;
  } catch (e) {
    return false; // Use cookies instead
  }
}

šŸ“ŠAnalytics & User Insights

Understanding Your Audience

A developer notices 40% of users are on mobile devices with screen width < 400px. They prioritize mobile optimization and redesign their navigation for small screens.

Bug Reporting

When an error occurs, error tracking tools (like Sentry) automatically capture browser version, OS, screen size, and timezone. This helps developers reproduce and fix bugs faster. For example: 'Bug only occurs on Safari 14 on iOS with screen width < 375px.'

// Automatic error context
window.onerror = (msg, url, line) => {
  sendErrorReport({
    message: msg,
    browser: navigator.userAgent,
    screen: `${window.innerWidth}x${window.innerHeight}`,
    platform: navigator.platform
  });
};

āš ļøPrivacy Concerns & Fingerprinting

Browser Fingerprinting (Controversial)

Some ad companies combine multiple data points (screen size + timezone + language + installed fonts + canvas rendering) to create a unique 'fingerprint' that tracks you across websites without cookies. This is why privacy-focused browsers like Brave block fingerprinting.

Location Tracking

A malicious website might track your GPS coordinates over time to build a pattern of your movements. This is why browsers ALWAYS ask permission for geolocation and show an icon when location is being accessed.

How to Protect Your Privacy:

  • Only grant permissions to trusted websites
  • Revoke permissions you no longer need (in browser settings)
  • Use privacy-focused browsers like Firefox or Brave
  • Enable "Do Not Track" in browser settings
  • Use browser extensions like Privacy Badger or uBlock Origin
  • Clear cookies and site data regularly

Summary: Why This Matters

Legitimate Uses (95% of cases):

  • Making websites work properly on different devices (responsive design)
  • Providing better user experience (right language, timezone, image quality)
  • Saving bandwidth and battery (adaptive loading, power saving)
  • Enabling core features (maps, video calls, offline mode)
  • Fixing bugs and improving performance

Privacy Concerns (5% of cases):

  • Fingerprinting for cross-site tracking
  • Excessive data collection without clear purpose
  • Sharing data with third parties without consent

The Bottom Line:

Most device data is used for legitimate purposes to make websites work better. However, it's important to be aware of what data is being collected and only grant sensitive permissions (location, camera, microphone) to websites you trust. Browsers protect you by requiring explicit permission for sensitive data and showing indicators when it's being accessed.

šŸ”’ Your Privacy Matters

This demo runs entirely in your browser. No data is sent to any server. All information shown is generated locally from browser APIs. You can verify this by checking your browser's network tab.

How to protect your privacy:

  • • Only grant permissions to trusted websites
  • • Review active permissions in browser settings
  • • Clear site data to reset permissions

Browser Settings:

  • • Chrome: Settings → Privacy and security
  • • Firefox: Settings → Privacy & Security
  • • Safari: Preferences → Privacy