Web applications are intrinsically different to desktop applications in the way they work. For starters desktop is one-user-per-exe-instance whereas web is many-users-per-desktop-instance.
You basically have 2 directions here. The first is a “present the desktop in a browser” approach. This uses a hit of middleware (AppBroker or similar) which translates the desktop interface into HTML, while necessarily maintaining a running instance of the exe per user. This is the approach taken by AnyScreen, H5 and so on. It is really fast to do since the desktop app remains as-is.
The second approach is to redesign the app from scratch, as a multi-user exe, using a template set specifically designed to generate a web interface. This is the approach i took with NetTalk because I wanted that native web feel, along with the scalability that comes with 1 exe serving thousands of users at the same time.
Because NetTalk is a fully-fledged, multi-threaded web server generating HTML against a CSS and JavaScript code-base, it’s the same as any web app written in any language.
In terms of the JavaScript, its not using React as the client-side framework (React being the flavor of the month at the moment) but it has its own framework which is stable and integrated to the server. It’s also extendable (which is why i can add more to it along the way.)
Building a NetTalk app is a steep learning curve. The web is a different country and they do things differenly there. There is a lot to learn about the platform and the tool at the same time. It’s only worth going this route if your app offers you a return. If you’re building “next 10 years of income” etc. It’s a significant investment not a quick fix.
On the upside you can reuse a lot of existing code. Reports can be used “as is” (with the addition of an extension template.) Browses and forms are redone (although more quickly in NetTalk than on the Desktop.)
It runs on a Windows Server - usually a hosted Virtual Public Server (aka VPS) on Amazon, Azure et al. We even host a couple in-office, and of course users can run it on-premesis (which a lot do.)
It can talk to any data source Clarion talks to. It uses the dictionary and any File Driver just like a desktop program. So it works fine with TPS, SQL, whatever.
Make no mistake - its a serious investment in time (and money - its not cheap) - but the end result is a completely native web app capable of doing anything the web can do.
I am of course biased, but its the solution I recommend for Clarion programmers looking to get serious about the web.