There is not one framework but several, some are mainly Smalltalk, some are more javascript wrappers or ported to javascript. I have omitted a lot of other 'Smalltalks in the browsers'. Another language would be LISP, like [9] in which HN itself is build. I'd love to demo some of these sophisticated front- and back-end frameworks, mail morphle at ziggo dot nl.
[7] https://smalltalkzoo.thechm.org
[8] https://en.wikipedia.org/wiki/Dabble_DB (aquihired by Twitter)
If you really care about low end devices, you would stick to HTML and use Javascript only when necessary and the least possible amount of it.
This is something I’d normally whisk by, but it’s bad in an Ask thread. It definitely has to a lot to do with performance. Even the worst-tuned apps are readable if they’re served as HTML and waiting for JS to become interactive. Better tuned apps SSR and follow the rest of your advice one way or another. Rendering nothing on the server is basically skipping performance as a first experience entirely.
Another good option might be Astro[2] which has a lot of similar goals to Marko, but lets you “bring your own framework” for the interactive parts, so you can achieve a similar experience to Marko with more mainstream tools/syntax.
Don't overcomplicate things, simplicity is often underrated on the web side of development. This is coming from a guy who writes low level embedded c and c++ on a daily basis.
It’s also tempting to go jamstack to start a new frontend project. Some of these boilerplates are very bleeding edge however and you will be spending a lot of time learning the convention of each individual boilerplate. I’d be hesitant to start a new jamstack project.
MobX + React + Websockets looks good for some things. (Controller apps for my home IoT system)
For other things where agility really matters (say a system for building machine learning training sets where you might want to add new tasks) I'd ditch the SPA because I wouldn't want to have to modify the front end just to add a new task.
I'm also dreaming about making systems that are WebGL based and not quite sure how I'll do it.
React is one option. I've used it but I'm not terribly excited about using it.
What do you mean by system for building machine learning training sets?
To create a training set you might have to ask people 1000 to 20,000 questions like "Is this a dog or a cat?", "Did the patient survive the operation?" Usually you're asking the same question about different prompts, for instance, photographs or clinical case report. Answering a form is called "making a judgement".
If you're adding a new task (say "click on the person's nose") you need to add a new form. In an old-school web app you can add a new form when people are making judgements, there is nothing to it. In the case of an SPA you might need to make a new React component, compile the app, force people to reload it, etc. It really slows the process down.
That said, React seems to be hugely popular these days.
Edit: Flutter Web seems buggy.
I haven't found it to be buggy, just somewhat difficult to use correctly. One of DocUI's aims is to provide a simplified SDK to make development faster and easier.