OneWebView is a Windows desktop app (C# .NET 8.0, WebView2/Chromium) that displays multiple web pages at once in a configurable grid (up to 10×10 tiles). Per tile: URL rotation with sub-URLs + delays, per-tile zoom, auto-refresh, global dark mode and fullscreen. All configurable via a single JSON config file.

OneWebView — 2×2 grid
Config: dashboard.json
Fullscreen: Off
Dark mode: Off
Kiosk • WebView2

Grid layout (rows/cols)

Build a dashboard wall with 1 to many tiles (max 10×10 grid = 100 tiles). Perfect for monitoring dashboards or information displays.

Sub-URL rotation per tile

Let one tile automatically cycle between multiple pages with configurable delays (in seconds). Rotation runs continuously: main URL → sub-URLs → main URL.

Kiosk experience

Clean display without distraction: fullscreen mode (F11), minimal UI, scrollbars hidden, popups blocked and predictable behaviour. Optional auto fullscreen.

Zoom & scale per tile

Every web app is different. Set a zoom factor per tile. Zoom via Ctrl+Scroll over URL bar, context menu or JSON config.

Auto-refresh

Refresh pages automatically at a configurable interval (in seconds). Perfect for dashboards that need real-time updates.

Dark mode & theming

Global dark mode configurable via JSON. Automatically adapts Windows title bar (Windows 10/11). Light and dark themes for all UI elements.

Edit mode & shortcuts

Ctrl+E for edit mode (change URLs), F11 for fullscreen toggle, F1 for About version dialog. URL info overlay on hover, hides automatically.

Config = deployable

JSON is version-control friendly. Share configs with colleagues, deploy to multiple screens. Auto-save on changes.

JSON configuration (example)

A single dashboard.json file defines grid layout, fullscreen, dark mode and all tiles. Changes are saved automatically. The dashboard runs embedded inside the application.

{
  "rows": 2,
  "cols": 2,
  "startFullscreen": true,
  "darkMode": true,
  "tiles": [
    {
      "url": "https://status.cloudflare.com/",
      "delay": 0,
      "subUrls": [
        { "url": "https://status.aws.amazon.com/", "delay": 30 },
        { "url": "https://www.githubstatus.com/", "delay": 30 }
      ],
      "zoom": 0.5,
      "autoRefresh": 300
    },
    {
      "url": "https://grafana.com/grafana/dashboards/",
      "delay": 0,
      "subUrls": [
        { "url": "https://status.datadoghq.com/", "delay": 20 }
      ],
      "zoom": 0.9,
      "autoRefresh": 120
    },
    {
      "url": "https://example.com/",
      "delay": 10,
      "subUrls": [
        { "url": "null", "delay": 10 },
        { "url": "null", "delay": 20 }
      ],
      "zoom": 1.0,
      "autoRefresh": 0
    },
    {
      "url": "https://example.com/",
      "delay": 0,
      "subUrls": [
        { "url": "null", "delay": 10 },
        { "url": "null", "delay": 20 }
      ],
      "zoom": 1.0,
      "autoRefresh": 0
    }
  ]
}
Configuration explained

rows/cols: Grid dimensions (1–10, max 100 tiles total).
startFullscreen: Start automatically in fullscreen mode (F11 to toggle).
darkMode: Global dark mode for all UI elements and Windows title bar.
url: Main URL for the tile (required).
delay: Wait time in seconds before rotation to sub-URLs starts (0 = immediately).
subUrls: Array of sub-URLs with delays. Use "null" as placeholder for empty slots.
zoom: Zoom factor per tile (1.0 = 100%).
autoRefresh: Auto-refresh interval in seconds (0 = disabled).

Download

OneWebView is a Windows desktop application (.NET 8.0, WebView2). Requires Windows 10/11 and Microsoft Edge WebView2 Runtime (usually already installed).

Technical details: Single-file self-contained executable (win-x64).

Contact

For questions, feedback or use cases, email:

Is OneWebView a "kiosk browser" or a dashboard tool?

Both: it's a kiosk browser that you arrange in a configurable grid, focused on reliable display of dashboards and web tools on (large) screens. Built with C# .NET 8.0 and WebView2 (Chromium engine).

Can I rotate multiple pages per tile?

Yes. With subUrls and delay, one tile automatically cycles between multiple URLs while other tiles stay fixed. Rotation runs continuously: main URL → sub-URLs → main URL. Delays are configurable per URL in seconds.

How does zoom per tile work?

Each tile has its own zoom factor. Set it via JSON config, Ctrl+Scroll over the URL bar, or via the context menu (right-click). Zoom is saved automatically in the config.

What are the keyboard shortcuts?

Ctrl+E: Toggle edit mode (edit URLs), F11: Toggle fullscreen, F1: About version dialog, Ctrl+Scroll (over URL bar): Zoom in/out.

Is there a way to share configs?

Yes. Because it's JSON, you can save and share configs with your team. The application auto-saves changes to dashboard.json in the application directory.

How large can the grid be?

Maximum 10×10 grid (100 tiles total). The grid is built dynamically with SplitContainers for even distribution. Larger grids may use more resources.