Hello HN,<p>I’m trying build a small web application using flask as a backend. I would love to know what are your favorite frameworks which will let you write frotent with as little as possible javascript
I was recently interested in similar topic. Here are 3 solutions I found:<p>* <a href="https://htmx.org/" rel="nofollow">https://htmx.org/</a><p>* <a href="https://unpoly.com/" rel="nofollow">https://unpoly.com/</a><p>* <a href="https://hotwired.dev/" rel="nofollow">https://hotwired.dev/</a><p>My personal preference is Unpoly (the idea of "layers" is awesome). But the best explanation of concept as a whole (HATEOAS, keeping app state on server using partial page updates, etc) is at HTMX homepage, and in these essays:<p>* <a href="https://htmx.org/essays/hateoas/" rel="nofollow">https://htmx.org/essays/hateoas/</a><p>* <a href="https://htmx.org/essays/locality-of-behaviour/" rel="nofollow">https://htmx.org/essays/locality-of-behaviour/</a>
Using low-code tools might be a great idea to build frontends without coding at all. If you are using open-source frameworks such as <a href="https://github.com/ToolJet/ToolJet" rel="nofollow">https://github.com/ToolJet/ToolJet</a> , you can save some significant time building your application.
I find that frameworks require varying amounts of learning curve and in my experience that is in addition to basic JS+HTML+CSS knowledge. I prefer to invest my learning bandwidth on fundamentals. So the simple webapps that I write are based on ES modules that I have refined over time. In the early days, I had to read up a great deal. Now, with a bit of reuse and polish, I can build webapps fast enough for my own needs. I also find WebSockets simpler for connecting with custom backends than fetch or XMLHttpRequest.
I use Elm for my project. Once you accept thinking the way it wants you to, it's a delight to develop front-end with it.<p>Side advantage, Elm-UI frees you from CSS: <a href="https://package.elm-lang.org/packages/mdgriffith/elm-ui/latest/" rel="nofollow">https://package.elm-lang.org/packages/mdgriffith/elm-ui/late...</a> it's like Tailwind but deeply intertwined with the language.<p><a href="https://elm-lang.org" rel="nofollow">https://elm-lang.org</a>
Yes, there are frameworks like Vaadin that let you write a desktop-like app. Your app will send a small bit of precompiled JS to the client, which will handle updating the page when the backend tells it to.<p>There are also many transpilers that compile other languages to JS. ScalaJS comes to mind, but almost every language has something like this. Thanks to Google's attempt to push Dart, there's even a way to get in-browser debugging for most transpiled langauges.
I wrote a full Windows like GUI as close as possible to the standards for best case performance.<p><a href="https://github.com/prettydiff/share-file-systems" rel="nofollow">https://github.com/prettydiff/share-file-systems</a>