Go Wasm Widget base
  • Go 67.3%
  • JavaScript 30.6%
  • Python 2.1%
Find a file
2026-05-31 21:17:13 -05:00
cmd loader: autosize widgets to subdashboard 2026-05-31 20:45:48 -05:00
docs docs: align implementation spec with frame architecture 2026-05-31 17:41:28 -05:00
examples hostproof: expose widget shell builder 2026-05-31 21:02:50 -05:00
internal contract: tighten frame URL scoping 2026-05-31 18:04:42 -05:00
wasm assets: keep generated paths validatable 2026-05-31 16:51:21 -05:00
web/static loader: autosize widgets to subdashboard 2026-05-31 20:45:48 -05:00
workflow hostproof: feed simple bar chart 2026-05-31 19:58:14 -05:00
.gitignore Add GoWW base docs 2026-05-31 03:37:05 -05:00
api.go Expose GoWW external API facade 2026-05-31 21:17:13 -05:00
api_test.go Expose GoWW external API facade 2026-05-31 21:17:13 -05:00
go.mod preview: render TQQQ candlesticks from financial DB 2026-05-31 20:18:35 -05:00
go.sum preview: render TQQQ candlesticks from financial DB 2026-05-31 20:18:35 -05:00
README.md docs: define browser strategy test preflight 2026-05-31 14:15:17 -05:00
workflow.events.jsonl Add V2 server frame delivery proof 2026-05-31 18:54:59 -05:00
workflow.schema.json workflow: leave V1 complete state idle 2026-05-31 16:41:14 -05:00
workflow.toml workflow: mark widget lab proof source existing 2026-05-31 19:55:49 -05:00

GoWW

GoWW means Go Wasm Widget.

This repo is the design base for turning GOTTH widgets into WASM-backed widgets without corrupting the existing widget-lab conventions.

The goal is not to bolt random browser code onto server-rendered widgets. The goal is to define a serious widget runtime boundary:

  • Go server owns routing, state, persistence, auth boundaries, and fallback rendering.
  • templ owns the HTML shell and progressive enhancement surface.
  • WebAssembly owns interactive widget behavior when the widget genuinely needs a client-side engine.
  • HTMX remains for coarse server mutations, not pointer-level chart interaction.
  • SVG fallback remains available when WASM is unavailable or disabled.
  • WASM widgets must fit inside existing dashboard, sub-dashboard, and widget shells.
  • Browser backtests and browser paper tests provide the fast preflight loop before freezing, compiling, and promoting strategy code into an RPC plugin for long validation such as 60-day tests.
  • Strategy testing must support equities and options as first-class instruments; options are not a fake ticker string bolted onto equity logic.

No widget implementation lives here yet. This repo starts with the base contract and architecture only.

Current Status

Documentation base only:

  • docs/PRD.md
  • docs/architecture.md
  • docs/implementation-spec.md

Layout Law

A GoWW widget is not a floating app. It is a widget mounted inside a dashboard-owned placement:

dashboard -> sub-dashboard -> widget shell -> GoWW mount

The dashboard owns placement. The sub-dashboard owns the widget slot. The widget runtime owns only the pixels inside its mount node.

A GoWW widget must resize to fit its container and must not change dashboard/sub-dashboard geometry.

Non-goals

  • Replacing GOTTH with a frontend framework.
  • Making every widget heavy by default.
  • Removing server-rendered fallback behavior.
  • Giving browser-side code broker, keyring, order, credential, or external-fetch authority.
  • Treating browser backtests or paper tests as production approval instead of pre-plugin simulation evidence.
  • Hiding state transitions inside a magic runtime.