Make Web Canvas behave more like Desktop Canvas with changing application data
- Status
- Accepted
- Fixed in
- -
- Source discussion
- https://ifnotnil.com/t/objo-studio-can-now-build-web-apps/4841/6
- Last updated
- 2026-09-09
Upvotes
0 upvotes
Uses your Objo forum account.
Public summary
Revisit the Web Canvas architecture so drawing code can use changing application data with a programming model that feels much closer to Desktop Canvas.
The current design compiles Canvas-reachable code into a private WebAssembly worker. That gives drawing and local interaction excellent latency, but the worker and Web application server have separate page instances and separate state. A Canvas therefore cannot naturally draw server-owned data such as database results, service responses or values changed by ordinary server-side event handlers.
The desired developer experience is the familiar one: application code updates its state, calls Canvas.Refresh(), and the next Paint observes the new state without the developer having to design and maintain two apparent copies of the page. Objo must preserve session isolation, security and bounded resource use, while keeping browser-local execution where it produces a genuine benefit.
This issue is intentionally broader than adding a predefined-variable or snapshot API. The architecture should be reconsidered before settling the public contract. Possible solutions include richer explicit snapshots, compiler-managed state transfer, hybrid local/server execution, server-side Paint with an efficient retained or diffed drawing stream, or a carefully defined combination.