 Hi, my name is Christophe, I'm an engineer at Nexclad and I would like to talk about Nexclad JavaScript APIs. So what is an API? API stands for Application Programming Interface. In Nexclad terms, that is the interface a Nexclad app uses to access the Nexclad core or another app. If you are familiar with Nexclad development, you will know that we have a curated and versioned public API for the backend. However, we have not had the equivalent of that on the front end until a few months ago. If we look at this example here, we see a very typical coding pattern that we used for the old JavaScript code. It's a script that is directly loaded into the browser and it accesses Nexclad via a global variable. This variable is called OC, so here you see it uses OC.generate URL. This script only works if the global variable OC exists. So if your script is loaded too early before the Nexclad script are initialized, it won't work. If you load this script into a test browser, it won't work either. So what does this look like in the browser? Well, there are the global variables from Nexclad which are OC, OCP, OCA and some dependencies like handlebars and jQuery. If our first app loads, it registers to OCA.app1. If the second app loads, it registers to OCA.app2. That's fine, but it also comes with its own version of jQuery. You see here you get a conflict because Nexclad uses jQuery2 and the app uses jQuery3. Similarly, if an app ships load-ash, there is a conflict with the underscore library Nexclad ships. Instead of polluting the global scope, we can use a bundler like webpack and possibly bobble to process our scripts and create an encapsulated bundle for each app as well as for Nexclad core. This means no more global variables are exported and there shouldn't be any conflicts. So let's visualize this change. We still have a few global variables like OC, OCP and OCA and some global dependencies like handlebars and jQuery because some legacy scripts still require that. But we also have a bundle for core. It ships Vue, Nexclad Router, load-ash and other dependencies. But those dependencies aren't global, they are only used inside this core bundle. And the same applies to apps.app1 comes with Vue3. So it's distinct to the version that core uses. But that's fine because they are conflict-free and so app1 can use whatever version it wants. App2 also uses Vue 2.6 like core, but it's shipping its own version. It's totally independent. And you see it's totally possible to use any other UI framework like ReactJS as long as it doesn't interfere with the globals. So for the new API of Nexclad, we created NPM packages. You can install these with npm-i and then import into your code and just use universally. They don't depend on anything global or Nexclad being loaded, so you can also just use them in your test setup. You can discover the packages by browsing the NPM package registry or looking into the Nexclad Dev Manual. It has a list of all the packages with a short description and a link to the generated code documentation where you can find all the details. Alright, this should sum up why and how we changed the JavaScript APIs and how you can find more information. Thanks.