diff --git a/electron/components/ipc.js b/electron/components/ipc.js
index b6d7aae70e919eb246f6fa365dd4a1e566b00f5e..8614a2eb91eae7c9584d7a3da902782e5d94437d 100644
--- a/electron/components/ipc.js
+++ b/electron/components/ipc.js
@@ -1,7 +1,7 @@
 const path = require('path');
 const store = require('./store');
 const { ipcMain } = require('electron');
-const { runPreview } = require('./preview');
+const { runPreview, updatePreview } = require('./preview');
 const { getRecentFiles, pickEpocProject, openEpocProject, newEpocProject, saveEpocProject, exportProject, writeProjectData, writeEpocData, readProjectData, copyFileToWorkdir } = require('./file');
 const { Menu } = require('electron');
 const contextMenu = require('./contextMenu');
@@ -100,6 +100,7 @@ const setupIpcListener = function (targetWindow) {
         if(event.sender !== targetWindow.webContents) return;
 
         await writeEpocData(store.state.projects[targetWindow.id].workdir, data);
+        updatePreview();
     });
 
     ipcMain.on('importFile', async (event, data) => {
diff --git a/electron/components/preview.js b/electron/components/preview.js
index e5fb0dd49d89f23e22ba3903613fc0291b55836f..3efe6f79ad3a745129a2554382a7fbf21d2663b3 100644
--- a/electron/components/preview.js
+++ b/electron/components/preview.js
@@ -82,6 +82,12 @@ function createPreviewServer () {
     });
 }
 
+function updatePreview() {
+    if (!previewWindow) return;
+
+    previewWindow.reload();
+}
+
 async function createPreviewWindow(server, contentPath) {
     if (!previewWindow) {
         previewWindow = new BrowserWindow({
@@ -124,5 +130,6 @@ const cleanPreview = function () {
 
 module.exports = {
     runPreview,
-    cleanPreview
+    cleanPreview,
+    updatePreview
 };
\ No newline at end of file