Alternatives to Flexx?
Hi @almarklein and anyone else who wants to chime in,
Are there any alternatives that work in a similar fashion to flexx?
They do not have to be Python based, any other language is fine, but just a similar principle to how flexx works:
- minimal javascript, mostly just for custom bindings and custom functionality
- seamless browser<->backend connection
- simple layout system
- ...
Thanks
It depends a lot on what you want to do, I guess. I think one big "feature" of Flexx it is being Python, but from what I read you're open to other tools too. I am quite impressed with Svelte (only played with it so far). II think it mostly solves a different problem, but it's pretty slick, and if you combine with CSS (i.e. flexbox) you have a really nice basis to build interactive apps.
Hey @almarklein
Thank you for the information. I really adore flexx, that should be obvious by now 😊.
But there are a few things that are causing me to worry about the future of the library (these are all point for usage of flexx on Windows):
- As mentioned in #752 , no active development. This isn't a big issue, but it's still there. Lot's of little things that could be improved:
- Some widgets have rough edges or weird / hidden behaviour, as I discovered and reported here. Like scrollbars in
Layout's, quirks in the Python-Javascript layer with PyWidget / Widget / Component, ... Thanks again @almarklein for solving the issues with me 🎉 - Built-in security measures would be nice to have. A good tutorial on how to make a solid and secure internet facing application would be great. A simple beginner friendly tutorial.
- Some widgets have rough edges or weird / hidden behaviour, as I discovered and reported here. Like scrollbars in
- Compilation Python-To-Javascript is getting slower and slower with newer Python versions. Example: one of my
flexxapps with Python3.7 starts in about 4 seconds, but with Python3.13 it takes more than 10 seconds - No changes in anything except the Python version. - Something changed with Python versions
>=3.10that changed the behaviour of the async event loop (this is Windows specific, haven't tested it on Linux!), that freezes every call toasyncio.get_event_loop().call_laterother than on the main thread. This is worrying for applications that use this heavily, as some functionality doesn't work without any errors / tracebacks.
flexx is still my favourite web framework (by far!!!), but not having at least some maintenance on it makes me a bit hesitant to use it for more projects. I'm willing to do fixes and upgrades in any aspect of the library, but I would need lots of guidance in getting to know it's internals.
Thanks again @almarklein
Thanks for sharing @matkuki. I understand your worries.
Personally, I have moved on to other things and don't want to spent much time on Flexx anymore. I still find it an interesting project though, and I can try to find time to do some minimal maintenance or advice to e.g. keep adjusting to new Python versions.
I'd be happy to give you (or someone else) admin rights so that someone can take a leading role in keeping Flexx going, and shaping it to their vision. And I can definitely chime in now and then.
Compilation Python-To-Javascript is getting slower and slower with newer Python versions. Example: one of my flexx apps with Python3.7 starts in about 4 seconds, but with Python3.13 it takes more than 10 seconds - No changes in anything except the Python version.
I did not know this. That's not what I would have expected 🤔
I did not try it, but it seems to me that https://github.com/reflex-dev/reflex is the closest alternative I could find. It seems a bit less flexible though
Hi @almarklein,
I recently discovered Flexx, and I was really excited because it’s exactly the kind of tool I had been looking for: a way to build client-side logic GUIs in Python. Unfortunately, it seems I arrived a bit late, as the project hasn’t been updated actively for some time. I wanted to ask if there is any possibility to continue updating or maintaining the project, even in a minimal way. Many developers like me rely on it and truly appreciate the unique approach Flexx offers.
Thank you very much for your time and for creating such an innovative project!
Best regards,
Jefferson
I'm happy to review small PR's e.g. to keep Flexx working on new Python versions, and to do an occasional release.
If someone really wants to take this project further, I suggest creating a fork and moving from there under a different name. Call it flexx2 if you want. I'd be happy to add a link to the readme.
Hi @almarklein,
I like the idea and I'll take a look at the project. I don't have time to start right now, but since you allow me to work on it, I'm interested. I'll first study how the project is; when I feel ready to move forward, I'll get back in touch.
Best Regards