cli/docs/adr/0001-use-wails-v3.md
Snider 1d73209e89 Add Architecture Decision Records (ADRs) (#312)
* docs: add Architecture Decision Records (ADRs)

Established a system for documenting architectural decisions.
- Created docs/adr directory
- Added ADR template (0000-template.md)
- Established ADR process in docs/adr/README.md
- Documented 4 key existing decisions (0001-0004)
- Integrated ADRs into mkdocs.yml and docs/index.md

* docs: add Architecture Decision Records (ADRs)

Established a system for documenting architectural decisions.
- Created docs/adr directory
- Added ADR template (0000-template.md)
- Established ADR process in docs/adr/README.md
- Documented 4 key existing decisions (0001-0004)
- Integrated ADRs into mkdocs.yml and docs/index.md
- Fixed formatting in pkg/io/local/client.go

* docs: add ADRs and fix auto-merge CI

- Added Architecture Decision Records (ADRs) to docs/adr/
- Integrated ADRs into mkdocs.yml and docs/index.md
- Localized .github/workflows/auto-merge.yml to fix "fatal: not a git repository" error in the reusable workflow by adding explicit --repo context.
2026-02-05 03:43:16 +00:00

1.1 KiB

ADR 0001: Use Wails v3 for GUI

  • Status: accepted
  • Deciders: Project Maintainers
  • Date: 2025-05-15

Context and Problem Statement

The project needs a way to build cross-platform desktop applications with a modern UI. Historically, Electron has been the go-to choice, but it is known for its high resource consumption and large binary sizes.

Decision Drivers

  • Performance and resource efficiency.
  • Smaller binary sizes.
  • Tight integration with Go.
  • Native look and feel.

Considered Options

  • Electron
  • Wails (v2)
  • Wails (v3)
  • Fyne

Decision Outcome

Chosen option: "Wails (v3)", because it provides the best balance of using web technologies for the UI while keeping the backend in Go with minimal overhead. Wails v3 specifically offers improvements in performance and features over v2.

Positive Consequences

  • Significantly smaller binary sizes compared to Electron.
  • Reduced memory usage.
  • Ability to use any frontend framework (Vue, React, Svelte, etc.).
  • Direct Go-to-JS bindings.

Negative Consequences

  • Wails v3 is still in alpha/beta, which might lead to breaking changes or bugs.
  • Smaller ecosystem compared to Electron.