--- /dev/null
+import Vue from 'vue';
+
+import WaveRendererComponent from './components/wave_renderer';
+import StatusComponent from './components/status';
+
+/* global window */
+
+const internals = {};
+
+/**
+ * The main vue application, it is composed by the other components, no real
+ * logic otherwise
+ *
+ * @class SortingHat
+ */
+internals.SortingHat = {
+
+ start() {
+
+ this.vm = new Vue({
+ el: '#sorting-hat',
+ components: {
+ waveRenderer: WaveRendererComponent,
+ status: StatusComponent
+ }
+ });
+ }
+};
+
+// Instantiates the app
+
+internals.run = function () {
+
+ internals.SortingHat.start();
+};
+
+window.addEventListener('load', internals.run);