# Architecture MosaicIQ is split into a small workspace that mirrors the same boundaries used by larger Electron/web monorepos. - `apps/web`: React and Vite renderer app. - `apps/desktop`: Electron main process, preload bridge, and local RPC handler. - `packages/contracts`: shared typed contracts for the renderer/preload/main RPC boundary. - `packages/shared`: shared runtime data and utilities that are not app-specific. The renderer never imports Electron directly. It calls the preload bridge through `window.mosaic`, and the Electron main process handles those calls through typed RPC methods from `packages/contracts`. pnpm is the default package manager for this repo. The committed lockfile is `pnpm-lock.yaml`, and `pnpm-workspace.yaml` owns the Electron/esbuild build-script allowlist needed by pnpm 11.