Stream: ideas

Topic: "native app but in a browser" platform


view this post on Zulip Richard Feldman (Feb 24 2025 at 22:04):

so I was talking on a recent podcast episode about Roc in the browser, and it got me thinking about how compiling to wasm makes doing any DOM interaction slower due to having to go back and forth between JS and wasm etc...and then I started thinking about https://makepad.dev

view this post on Zulip Richard Feldman (Feb 24 2025 at 22:05):

which basically doesn't manage DOM nodes for the UI and instead renders everything in webgl

view this post on Zulip Richard Feldman (Feb 24 2025 at 22:06):

which is also what Zed does outside the browser with gpui

view this post on Zulip Richard Feldman (Feb 24 2025 at 22:08):

both makepad and gpui are missing accessibility features, but they can both offer those features without necessarily using the OS or browser ways of doing that

view this post on Zulip Luke Boswell (Feb 24 2025 at 22:08):

Thats how this is rendered https://lukewilliamboswell.github.io/roc-ray-ball-physics/

view this post on Zulip Richard Feldman (Feb 24 2025 at 22:09):

yeah, so maybe a better use case to focus on for web is like "native app but it runs in a browser too"

view this post on Zulip Richard Feldman (Feb 24 2025 at 22:10):

as opposed to like "integrates into the JS and compile-to-JS DOM ecosystem"

view this post on Zulip Luke Boswell (Feb 24 2025 at 22:10):

I've still been following along with the zig mach graphics project which I think will be really nice for this kind of project.

view this post on Zulip Luke Boswell (Feb 24 2025 at 22:13):

Lot's of cool project ideas I'm keen to build with roc... just need to implement a few features before we can get back to these experiments. :sweat_smile:

view this post on Zulip Karl (Feb 24 2025 at 22:50):

Richard Feldman said:

how compiling to wasm makes doing any DOM interaction slower

While it does make things slower the Rust impls (Leptos, Dioxus) turn in reasonable scores on perf benchmarks. They're not as fast as they should be given the raw perf but they're still competitive with the fastest JS impls. I've seen UI in webgl demos but AFAIK that leaves screen readers out in the cold which causes problems for accessibility requirements.

view this post on Zulip Richard Feldman (Feb 24 2025 at 22:59):

you can implement your own screen reader functionality in userspace though, that's what I was referring to earlier

view this post on Zulip Anthony Bullard (Feb 24 2025 at 23:12):

This is also what Flutter on the Web is doing now - rendering directly to Canvas (after years of trying to get it rendering native DOM nodes to work). The framework has an a11y layer baked into it, so I believe they use that to help the browser. I haven't really read deeply on it, as I haven't been on the team in 5+ years at this point

view this post on Zulip Anthony Bullard (Feb 24 2025 at 23:12):

But basically, yes, this is well-trodden territory, but requires you building a framework that handles all of that

view this post on Zulip Anthony Bullard (Feb 24 2025 at 23:13):

Can't wait until v0.1.0 so we can build cool experiments like this! (In terms of time available)

view this post on Zulip Richard Feldman (Feb 24 2025 at 23:14):

it's gonna be awesome! :grinning_face_with_smiling_eyes:

view this post on Zulip Tobias Steckenborn (Feb 25 2025 at 08:20):

I assume that this would need to be supplemented by an additional website or further development that serves as a landing page, among other functions, to achieve effective SEO and related benefits?

view this post on Zulip Anthony Bullard (Feb 25 2025 at 10:58):

Definitely would not be meant for general web development, it would be for rich web applications


Last updated: Jun 16 2026 at 16:19 UTC