This Angular 5 demo runs in the browser using GPU where available.
We implemented it as a tiny Angular 5 app loaded inside this page to test the performance.

Angular 5 Demo (experimental - modern browsers only)

Here we first use JavaScript in the front end to classify the randomly loaded images locally, without a back end. We chose to use a deep convolutional neural network (CNN) architecture called SqueezeNet.
The model is small, thus the bundled JavaScript file for the demo is just 634 kB, including the trained model, Angular 5 and the actual app.
For more complex cases we would use a back end and call the API from the front end. The second example shows this.