View phone, tablet, and desktop layouts side-by-side in one browser tab, with synchronized scrolling and interaction.
Stop resizing your browser.
Official Website • Chrome Web Store • Firefox Add-ons • Quick Start • Documentation • Contributing
Testing responsive websites screen-by-screen in browser DevTools is tedious and error-prone. You open DevTools, switch to device emulation, drag the window border, and squint at 375 pixels. You fix a mobile layout bug, commit, and only discover later that your fix broke the navigation bar at 840 pixels or caused an overflow at 1024 pixels.
ViewGrid replaces repetitive window-dragging with a unified, multi-viewport workspace inside your browser:
- See all screens at once: Keep phone, tablet, laptop, and desktop viewports side-by-side in real time.
- Scroll once, test everywhere: Interact with one screen while all other viewports mirror your actions with zero echo loops.
- Catch responsive bugs before production: Spot layout shifts, hidden overflows, and small tap targets immediately.
- Verify against designs: Overlay Figma design mockups directly over live code with adjustable opacity.
- Simultaneous Multi-Viewport Grid: Render up to 16 real-time viewports simultaneously with auto-fit matrix, vertical stack, or horizontal row layouts.
- Zero-Echo Interaction Sync: Mirror scroll positions, mouse clicks, text typing, and navigation across all active viewports without feedback loops.
- 21+ Curated Device Presets: One-click presets for iPhone 15/14, iPad Pro/Air, Galaxy S24, MacBook, and 4K desktop screens, plus custom pixel width/height inputs.
- Orientation Flipping: Instant portrait/landscape rotation with real-time viewport aspect ratio recalculation.
- Dual Split Diffing: Select any two viewports and compare them side-by-side or with an interactive split slider.
- Proportional Optical Curtain: Compare breakpoint transitions with a 100% height optical curtain that respects natural device widths.
- Figma Design Mockup Overlay: Load PNG or SVG mockups over live pages, toggle opacity (0–100%), and verify sub-pixel font weights, padding, and alignment.
- HiDPI PNG Screenshot Export: Capture individual viewports or the entire multi-device canvas in crystal-clear full-resolution PNG.
- Localhost & Internal Staging: Seamlessly inspect
localhost:3000,127.0.0.1, internal VPNs, and live production URLs without tunnels or cloud middleman proxies. - Smart Framing Engine: Automatically strips
X-Frame-Optionsand relaxes CSPframe-ancestorssolely for workspacesub_framerequests (Chromium DeclarativeNetRequest & Firefox webRequest). Your other browser tabs remain 100% secure. - Service Worker & PWA Isolation: Automatic cleanup of stale Service Workers and cache storage on launch to guarantee fresh previews of protected sites.
- Responsive Issue Scanner: Automated DOM scanner identifying horizontal page overflow, truncated text, and touch targets smaller than 44×44px.
- Keyboard-First Navigation: Full shortcut layer (
Alt+Shift+Vto open workspace,Dfor diff,Sfor sync,Cfor screenshot,Ifor inspector,?for cheatsheet).
ViewGrid is built on a strict local-first, zero-telemetry security architecture:
- 100% Local Execution: All DOM rendering, interaction synchronization, and image diffing happen locally inside your browser sandbox.
- Zero Telemetry: No analytics beacons, no tracking scripts, no third-party CDNs, and no external servers.
- Transparent Permissions:
- ViewGrid requests host permissions (
<all_urls>) strictly to embed target preview tabs inside workspace frames and synchronize interactions across them. - Header modifications (
X-Frame-OptionsandCSP frame-ancestors) are isolated exclusively to workspacesub_framerequests. Normal tabs and browsing history are never modified or monitored.
- ViewGrid requests host permissions (
Unlike heavy desktop applications or Electron wrappers that consume 850 MB+ of memory, ViewGrid runs directly inside the native browser runtime:
- Ultra-lightweight memory footprint: Consumes ~14 MB RAM in benchmark testing environments.
Note on benchmark context: Measured in our standard benchmark scenario (3 concurrent viewports rendering standard responsive web content on Chromium and Firefox). Actual memory consumption varies depending on page complexity, media assets, hardware, and total number of active viewports.
- 60 FPS Synchronized Scrolling: Scroll events are coalesced using
requestAnimationFramewith sequence timestamp fencing to ensure buttery-smooth navigation across multiple viewports without CPU throttling.
| Multi-Device Workspace Grid | Proportional Curtain & Figma Diff |
|---|---|
![]() |
![]() |
| Built-in Device Preset Catalog | Responsive DOM Issue Scanner |
|---|---|
![]() |
![]() |
Install ViewGrid directly from official browser directories with automatic updates:
| Browser / Platform | Channel | Status | Direct Link |
|---|---|---|---|
| Google Chrome, Brave, Edge, Arc, Opera | Chrome Web Store | Live (v1.0.1) | Add to Chrome |
| Mozilla Firefox, Zen Browser, LibreWolf | Firefox Add-ons (AMO) | Live (v1.0.1) | Add to Firefox |
- Download the latest release package (
viewgrid-1.0.1-chromium.ziporviewgrid-1.0.1-firefox.zip) from GitHub Releases. - Verify package integrity against
SHA256SUMS. - Unzip the downloaded archive.
- In Chrome/Edge/Brave: Navigate to
chrome://extensions, enable Developer mode, and click Load unpacked. - In Firefox: Navigate to
about:debugging#/runtime/this-firefox, click Load Temporary Add-on…, and selectmanifest.json.
# 1. Clone the repository
git clone https://github.com/sinansarikaya/viewgrid.git
cd viewgrid
# 2. Install dependencies (pnpm is the canonical package manager)
pnpm install
# 3. Run unit tests (54 passing tests)
pnpm test
# 4. Run typechecks & code linter
pnpm run lint
pnpm run typecheck
pnpm run typecheck:website
# 5. Build extension bundles for both Firefox and Chromium
pnpm run build:all
# → dist/firefox (MV3 Event Pages + webRequest)
# → dist/chromium (MV3 Service Worker + DeclarativeNetRequest)
# 6. Package release archives
pnpm run package:release
# → release/viewgrid-1.0.1-chromium.zip
# → release/viewgrid-1.0.1-firefox.zip
# → release/SHA256SUMS| Shortcut | Action |
|---|---|
Alt+Shift+V / Alt+V / ⌘+Shift+V |
Open / Toggle ViewGrid Workspace |
D |
Toggle Split-Diff Comparison Mode |
S |
Toggle Interaction Synchronization (Scroll/Click/Input) |
A |
Add Custom Viewport / Open Device Preset Picker |
O |
Rotate Viewport Orientation (Portrait ↔ Landscape) |
G |
Cycle Grid, Column, and Row Layout Modes |
C |
Capture Full-Canvas Workspace Screenshot |
Shift+C |
Capture Active Viewport Screenshot |
F |
Zoom to Fit (Fit all viewports neatly on screen) |
I |
Open Responsive Issue Scanner / Breakpoint Inspector |
Shift+R |
Force Hard Reload & Bypass Cache across all viewports |
? |
Open In-App Keyboard Shortcuts Cheatsheet |
Esc |
Close Open Modals / Drawers |
┌────────────────────────────────────────────────────────────────────────┐
│ ViewGrid Architecture │
└────────────────────────────────────────────────────────────────────────┘
ui/ (React 18 + PostCSS + CSS Modules)
├── Workspace Shell & Multi-Device Canvas
├── Viewport Card Grid & Device Framing
├── CompareModal (Dual Split / Proportional Curtain / Figma Diff)
└── SettingsModal & IssuesDrawer
│
▼
core/ (Pure TypeScript Engine)
├── Devices Engine (21+ Presets + Custom Dimensions)
├── Sync Protocol (Epoch/seq loop-proof guards)
├── Layout Engine (Grid / Row / Column / Auto-fit)
└── Capture Math & DOM Issue Detectors
│
▼
platform/ & background/ (Typed Facade & Service Worker)
├── Header Relaxation (Scoped XFO, CSP, COOP, COEP, CORP)
├── Message Router & DNR Rules
├── Service Worker & BrowsingData Cache Cleaner
└── Capture Engine (tabs.captureTab / captureVisibleTab + DPR Crop)
| Document | Purpose |
|---|---|
docs/STORE_LISTINGS.md |
Official store listing copy for Chrome Web Store and Firefox AMO |
docs/STORE_SCREENSHOT_PLAN.md |
Screenshot strategy, captions, and specifications for store assets |
docs/GITHUB_METADATA.md |
GitHub repository About description, website URL, and recommended topics |
CHANGELOG.md |
Release history, version changelogs, and notable changes |
SECURITY.md |
Security policy, vulnerability disclosure, and threat model overview |
docs/PRIVACY.md |
Privacy defaults, data inventory, and permission justifications |
docs/ARCHITECTURE.md |
Browser abstraction, sync protocol, and engine internals |
docs/PRD.md |
Product Requirements Document (vision → roadmap → capabilities) |
docs/COMPETITIVE_ANALYSIS.md |
Competitive workflow comparison and architectural differentiation |
docs/DEVICE_SPEC.md |
Device profile schema, viewport dimensions, and DPR standards |
docs/TESTING.md |
Testing strategy and Definition of Done |
docs/ROADMAP.md |
Version roadmap and release milestones |
CONTRIBUTING.md |
Development workflow, guidelines, and PR checklist |
If ViewGrid helps you build better responsive websites and saves you debugging time, consider supporting ongoing open-source development!
This project is licensed under the MIT License - see the LICENSE file for details.
Created with ❤️ by Sinan Sarıkaya.



