flexx icon indicating copy to clipboard operation
flexx copied to clipboard

Alternatives to Flexx?

Open matkuki opened this issue 11 months ago • 4 comments

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

matkuki avatar Mar 13 '25 15:03 matkuki

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.

almarklein avatar Mar 14 '25 10:03 almarklein

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.
  • 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.
  • Something changed with Python versions >=3.10 that changed the behaviour of the async event loop (this is Windows specific, haven't tested it on Linux!), that freezes every call to asyncio.get_event_loop().call_later other 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

matkuki avatar Mar 18 '25 09:03 matkuki

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 🤔

almarklein avatar Mar 19 '25 08:03 almarklein

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

Konubinix avatar Nov 08 '25 07:11 Konubinix

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

TheJeffah avatar Dec 24 '25 02:12 TheJeffah

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.

almarklein avatar Dec 24 '25 09:12 almarklein

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

TheJeffah avatar Jan 05 '26 07:01 TheJeffah