---
title: Wails v3 Architecture
description: Deep-dive diagrams and explanations of every moving part inside Wails v3
sidebar:
  order: 1
---


Wails v3 is a **full-stack desktop framework** consisting of a Go runtime,
a JavaScript bridge, a task-driven tool-chain and a collection of templates that
let you ship native applications powered by modern web tech.

This page presents the *big picture* in four diagrams:

1. **Overall Architecture** – how every subsystem connects  
2. **Runtime Flow** – what happens when JS calls Go and vice-versa  
3. **Development vs Production** – two modes of the asset server  
4. **Platform Implementations** – where OS-specific code lives  

---

## 1 · Overall Architecture

**Wails v3 – High-Level Stack**

{/*
TODO: Fix D2 diagram generation (triple quotes for multi-line strings) or embed as image.
The previous D2 code block was causing MDX parsing errors in the build pipeline.
*/}

**[High-Level Stack Diagram Placeholder]**

---

## 2 · Runtime Call Flow

**Runtime – JavaScript ⇄ Go Calling Path**

{/*
TODO: Fix D2 diagram generation (triple quotes for multi-line strings) or embed as image.
The previous D2 code block was causing MDX parsing errors in the build pipeline.
*/}

**[Runtime Call Flow Diagram Placeholder]**

Key points:

* **No HTTP / IPC** – the bridge uses the native WebView’s in-memory channel  
* **Method IDs** – deterministic FNV-hash enables O(1) lookup in Go  
* **Promises** – errors propagate as rejections with stack & code

---

## 3 · Development vs Production Asset Flow

**Dev ↔ Prod Asset Server**

{/*
TODO: Fix D2 diagram generation (triple quotes for multi-line strings) or embed as image.
The previous D2 code block was causing MDX parsing errors in the build pipeline.
*/}

**[Asset Flow Diagram Placeholder]**

* In **dev** the server proxies unknown paths to the framework’s live-reload
  server and serves static assets from disk.  
* In **prod** the same API is backed by `go:embed`, producing a zero-dependency
  binary.

---

## 4 · Platform-Specific Runtime Split

**Per-OS Runtime Files**

{/*
TODO: Fix D2 diagram generation (triple quotes for multi-line strings) or embed as image.
The previous D2 code block was causing MDX parsing errors in the build pipeline.
*/}

**[Platform Split Diagram Placeholder]**

Every feature follows this pattern:

1. **Common interface** in `pkg/application`  
2. **Message processor** entry in `pkg/application/messageprocessor_*.go`  
3. **Implementation** per OS under `internal/runtime/*.go` guarded by build tags  

Missing functionality on an OS should return `ErrCapability` and register
availability via `internal/capabilities`.

---

## Summary

These diagrams outline **where the code lives**, **how data moves**, and
**which layers own which responsibilities**.  
Keep them handy while exploring the detailed pages that follow – they are your
map to the Wails v3 source tree.
