# Are there any widget sets for native-like programming inside a browser?

**URL:** <https://discuss.python.org/t/are-there-any-widget-sets-for-native-like-programming-inside-a-browser/50370>\
**Category:** WebAssembly\
**Created:** [April 5, 2024, 11:23pm UTC](https://discuss.python.org/t/are-there-any-widget-sets-for-native-like-programming-inside-a-browser/50370 "2024-04-05T23:23:39Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![dstromberg](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/dstromberg/32/9047_2.png) [@dstromberg](https://discuss.python.org/u/dstromberg)\
**Post date:** [April 5, 2024, 11:23pm UTC](https://discuss.python.org/t/are-there-any-widget-sets-for-native-like-programming-inside-a-browser/50370/1 "2024-04-05T23:23:39Z")

</div>

I was pretty excited to see this article today:

> **[WebAssembly Is Finally Usable, Almost](https://www.forbes.com/sites/justinwarren/2024/04/04/webassembly-is-finally-usable-almost/?sh=4f12930967d2)**
>
> WebAssembly, or Wasm, has finally started becoming usable by ordinary developers and adoption is exploding as a result.

It’s got me wondering: Are there any widget sets usable from Python in Web Assembly yet? How mature are they?

I’ve been on the fence about jumping to Rust or C++ to use EGui or ImGui, but I’m not sure I really want to abandon my history with Python.

What I definitely don’t want to do, though, is to get stuck using the DOM from JavaScript and TypeScript.

Thanks!

---

<div class="post-metadata">

**Author:** ![laffra](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/laffra/32/16065_2.png) [@laffra](https://discuss.python.org/u/laffra)\
**Post date:** [April 6, 2024, 8:32am UTC](https://discuss.python.org/t/are-there-any-widget-sets-for-native-like-programming-inside-a-browser/50370/2 "2024-04-06T08:32:56Z")

</div>

I developed LTK and made it open source, see [github](https://github.com/laffra/ltk).  
I am actively using LTK to develop [PySheets](https://www.linkedin.com/feed/update/urn:li:activity:7182109157582368768/).

LTK is elegant, easy to use and enhance, and quite stable now. Try it out.

---

<div class="post-metadata">

**Author:** ![JeffGlass](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/jeffglass/32/17293_2.png) [@JeffGlass](https://discuss.python.org/u/JeffGlass)\
**Post date:** [April 10, 2024, 2:52pm UTC](https://discuss.python.org/t/are-there-any-widget-sets-for-native-like-programming-inside-a-browser/50370/3 "2024-04-10T14:52:53Z")

</div>

You can run [many Panel widgets on top of PyScript/Pyodide](https://panel.holoviz.org/how_to/wasm/standalone.html).

You might also look at [starfyre](https://github.com/sparckles/starfyre),a reactive frontend framework built by @sansyrox on top of PyScript.

---

<div class="post-metadata">

**Author:** ![dstromberg](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/dstromberg/32/9047_2.png) [@dstromberg](https://discuss.python.org/u/dstromberg)\
**Post date:** [April 13, 2024, 3:21am UTC](https://discuss.python.org/t/are-there-any-widget-sets-for-native-like-programming-inside-a-browser/50370/4 "2024-04-13T03:21:33Z")

</div>

Are there no Immediate Mode or Retained Mode GUI toolkits for Python+WASM? That’s really what I’m hoping for.

I actually am kinda hoping WASM is going to make all this Reactive stuff go away. It’ll be hard to stop JavaScript/TypeScript/HTML/CSS/DOM/Components’ inertia completely, but I see them as a bit of a mess that was temporarily necessary in the history of computing.

---

<div class="post-metadata">

**Author:** ![two](https://avatars.discourse-cdn.com/v4/letter/t/41988e/32.png) [@two](https://discuss.python.org/u/two)\
**Post date:** [October 16, 2024, 7:53pm UTC](https://discuss.python.org/t/are-there-any-widget-sets-for-native-like-programming-inside-a-browser/50370/5 "2024-10-16T19:53:33Z")

</div>

DOM is necessary for your ui to be accessible to screen readers and other tools that access uis
