You can develop using HTML + Javascript for the interface by using an embedded WebKit frame in a Gtk window (this is easiest to do in Python). The hardest part is communicating with the system from your HTML/Javascript application.

You can do this by passing messages between Javascript and Python. You will, however, have to write the system logic as Python functions but this is pretty easy to do.

Here is a simple example showing communication between Python and Javascript. In the example, the HTML/Javascript displays a button, that when clicked sends an array ["hello", "world"] to Python which joins the array into a string "hello world" and sends it back to Javascript. The Python code prints a representation of the array to the console and the Javascript code pops up an alert box that displays the string.

You might also take a look at UserWebKit, the Python3 library that provides the key functionality used by the Novacut and Dmedia UI (it's built atop UserCouch and Microfiber, BTW).

After a lot of thought, I decided it was more interesting to not access the platform directly from JavaScript, because then you can optionally run the UI in a standard browser if you want. The Novacut architecture uses CouchDB to keep the UI and backend servers network-transparent. In the normal, single-computer case, the servers run locally on that computer. But you can likewise run the servers (and CouchDB) on other systems, without the UI noticing the difference.

Well you could include a language that can run shell commands like php and this way take advantage of stuff like installing apps from a webpage and executing some commands (Like detecting which theme to use and what CSS to use depending on the system theme). For example you have this two questions which might help: