diff --git a/assets/js/lib/server.jsx b/assets/js/lib/server.jsx
index c87c2c0ffbb7d85c4d3692a203affdf0149976f1..437a863781d0356ca579a5a31e3940fd8925d304 100755
--- a/assets/js/lib/server.jsx
+++ b/assets/js/lib/server.jsx
@@ -1,4 +1,5 @@
-import Logger from './logger';
+import Logger from "./logger";
+import Storage from "./storage";
 
 export default class Server {
     static getCookie(name) {
@@ -17,7 +18,7 @@ export default class Server {
         return cookieValue;
     }
 
-    static _request(path, method, data) {
+    static _request(path, method, data, useCache = false) {
 
         let url = "/api" + path;
         let csrftoken = this.getCookie("csrftoken");
@@ -34,24 +35,30 @@ export default class Server {
         };
 
         let request = fetch(url, requestData);
-        return request.then((response) => {
+        let promise = request.then((response) => {
             // Logger.log("[Server] Calling", url, response);
             if (response.status < 200 || response.status > 399) {
-                Logger.log(response);
                 throw response;
             }
             if (response.status === 204) {
                 return response;
             }
             return response.json();
-        }).then((response) => {
-            // Logger.log("[Server] Response from", url, response);
-            return response;
         });
+
+        return useCache ? promise.then((response) => {
+            Logger.log("[Server] Response from", url, response);
+            Storage.set(path, response);
+            return response;
+        }) : promise.then((response) => {
+            Logger.log("[Server] Response from", url, response);
+            return response;
+        })
     }
 
-    static get(path) {
-        return this._request(path, "GET", null);
+    static get(path, useCache = true) {
+        return (useCache && Storage.get(path)) ?
+            Promise.resolve(Storage.get(path)) : this._request(path, "GET", null, useCache);
     }
 
     static post(path, data) {
diff --git a/package.json b/package.json
index bbbc8f9b4c7eb2eeb09df9e858cfea91b0abe278..8ec954ec85bc2f97764d9a7a5a7a2a4a1f669143 100755
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
   "scripts": {
     "build": "webpack --config webpack.prod.config.js --progress --colors",
     "build-production": "webpack -p --config webpack.prod.config.js --progress --colors",
-    "webpack": "webpack -p --progress --display-error-details --config webpack.config.js --watch",
+    "webpack": "webpack --progress --display-error-details --config webpack.config.js --watch",
     "watch": "node server.js",
     "karma": "karma start"
   },