I like Sciter for the possibilities, but it needs better compatibility with web standards. Being able to port an existing application that uses React -for example- and have it just run would be the cat's meow.
Needing to rewrite with other UI/JS frameworks to account for quirks gives me pause.
Also Sciter.JS has its own native implementation of JSX ( it's built in JS core of Sciter.JS) and also DOM extended by native element.patch(vdom) that makes "reactivity" to work in Sciter.JS with native speed.
Yet quite a lot of UI components are natively built-in. For example:
I think the project is great and I admire your work, but I'm confused about how you position it.
Being "almost" web compatible is not a recipe for success, as it's bound to cause confusion and frustration among folks that want it to be an Electron alternative.
Either embrace Web APIs entirely (perhaps a smaller compatible subset), or just position it as something else entirely, like Flutter.
Hmm... and how do I do that? What's your impression?
Sciter.JS is "an embeddable HTML/CSS/JS UI engine" and that's it.
Yes, it is possible to use it without touching native side like ElectronJS, see: https://quark.sciter.com/ , but that's not the primary use case. So far it has around 400 mln installations in embedded form as part of other products, see: https://sciter.com/#customers
If you want you can treat it as Flutter that uses time proven and familiar HTML/CSS/JS resource definitions instead of Dart. Dart is close to JS but not JS, Flutter has some DOM but not HTML DOM, it has some style system but quite rudimental one.
I think your description is technically correct, it is an UI engine that uses the HTML, CSS and JS languages.
But to most folks, that sounds like a "web browser/view engine", which it is not. Does it pass the Acid2 / Acid3 test?
The power of ElectronJS is not its use of HTML, CSS and JS, but the fact that it is a web browser engine and one can share the millions of frameworks, libraries and muscle memory built for the web in their desktop applications.
Problem is that desktop UI has different UI model from a web page.
Web page / Web app is usually "endless paper tape" opened full screen - has defined width but no height - no need for vertical alignment for example.
And desktop UI is usually different - small or vertically and horizontally space limited windows, etc.
In Sciter you can show element as popup one - in separate window that can be rendered outside of your [small] app window, consider this popup: https://sciter.com/wp-content/uploads/2021/02/select-table.p... , good luck with recreating this in browser. By the way that <select> element is defined as:
will give you split-view out-of-the-box. But web dev's will start looking for frameworks in order to achieve this simple component that browser have internally.
TL;DR: Web and desktop UIs use inherently different models. You can share parts between these two different platforms but only parts, really.
Needing to rewrite with other UI/JS frameworks to account for quirks gives me pause.