Placing a JUCE UI in a Browser

Hi All,

Project manager question here - I am not a techie so please be gentle with me.

We are JUCE license holders and have some JUCE code which works very well on various platforms. However, a customer has requested that we make the UI available as a web page rather than as an application that runs on a specific OS. From a remote PC they want to browse to a Linux box where the application is running and presented as a web page, rather than have the app on the PC itself. To be clear, they want a web interface and not some other form of terminal capability.

Does anyone know if this is possible? Any pointers much appreciated!

Either you want to write an HTTP UI with a JUCE backend. You can run a webserver in JUCE using something like civetweb.

Or if it’s also possible to run the code natively using WebAssembly.

Neither are very easy.

Writing an actual javascript/HTTP frontend for your app is probably the best strategy as cross compiling for web assembly is tricky, and debugging problems is a real pain.

Maybe there are other approaches…?

1 Like

You have a couple of options:

  • port the UI part of your app to something like React and add a REST server to your JUCE application. (Not trivial but likely the correct way of doing it).

  • Recompile your whole app to run on WASM. (Likely extremely difficult and costly to support in the long run).

  • A variation of Remote Desktop/Streaming that allows your customer to connect via a web interface and is presented with your JUCE application streamed from a server. (Third party services can do this, potentially expensive running costs though).

4 Likes

Another option: Port your UI to Flutter, so you can run it natively in your app/plugin, allowing you to also run it in the browser.

3 Likes

Today I learned something new :slight_smile:

1 Like

Perhaps Emscriptem would be an option.