Skip to content

Architecture Overview

Vast is an Electron desktop browser shell around Chromium page rendering and a React application interface.

The main process owns privileged application behavior such as windows, browser sessions, storage boundaries, downloads, native dialogs, data migration, optional local services, and operations that should not be directly available to web content.

The application renderer communicates with privileged functionality through a narrow, context-isolated bridge.

Normal websites do not receive that application bridge.

The renderer contains the visible Vast interface: browser chrome, tabs, workspaces, Settings, New Tab, local tools, extension UI, and internal vast:// pages.

Websites run as untrusted web content in sandboxed browser views. A site loaded in a Vast tab is not treated as part of the Vast application simply because it is displayed inside the same window.

Workspace identity settings decide whether a browser session is isolated and persistent, temporary, or shared for compatibility. Proxy routing is attached to the workspace identity rather than being only a cosmetic workspace property.

Shared TypeScript definitions describe persisted browser state and contracts for tabs, groups, workspaces, permissions, notes, downloads, macros, network devices, extension metadata, optional feature state, and user settings.

Vast-owned profile data is accessed through the application boundary rather than allowing normal websites to read or write arbitrary browser files.

Some Labs features have their own local runtime or OS capability. They remain separate from ordinary website privilege. Displaying a local tool inside Vast does not automatically grant that tool unrestricted access to the browser.

This diagram is deliberately conceptual. Detailed privileged-channel names, signing logic, service topology, key material, anti-abuse controls, and private deployment mechanics are outside the scope of public documentation.

The renderer loads heavier browser surfaces on demand. Inactive restored tabs can remain discarded, and tab/sidebar rendering avoids unnecessary work. Appearance uses shared CSS variables and proportional radius tokens rather than reloading web content when a radius changes.

The main process owns download tracking across workspace sessions and supplies a current snapshot after a renderer reload. Frequent progress updates are separate from general durable UI-state autosave. Persistent writes are consolidated, queued, and deduplicated, with bounded backups; temporary download records remain non-durable.