diff --git a/package.json b/package.json
index 4a0b7415..57917b26 100644
--- a/package.json
+++ b/package.json
@@ -111,6 +111,7 @@
     "electron-log": "^4.4.1",
     "electron-store": "^8.0.1",
     "electron-updater": "^4.3.9",
+    "electron-window-state": "^5.0.3",
     "faker": "^5.5.3",
     "marked": "^4.0.0",
     "moment": "^2.29.1",
diff --git a/src/main/main.js b/src/main/main.js
index 639d3c39..c9e74e32 100644
--- a/src/main/main.js
+++ b/src/main/main.js
@@ -3,6 +3,7 @@
 import { app, BrowserWindow, /* session, */ nativeImage, Menu } from 'electron';
 import * as path from 'path';
 import Store from 'electron-store';
+import * as windowStateKeeper from 'electron-window-state';
 import * as remoteMain from '@electron/remote/main';
 
 import ipcHandlers from './ipc-handlers';
@@ -18,12 +19,15 @@ process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true';
 
 // global reference to mainWindow (necessary to prevent window from being garbage collected)
 let mainWindow;
+let mainWindowState;
 
 async function createMainWindow () {
    const icon = require('../renderer/images/logo-32.png');
    const window = new BrowserWindow({
-      width: 1024,
-      height: 800,
+      width: mainWindowState.width,
+      height: mainWindowState.height,
+      x: mainWindowState.x,
+      y: mainWindowState.y,
       minWidth: 900,
       minHeight: 550,
       title: 'Antares SQL',
@@ -41,6 +45,9 @@ async function createMainWindow () {
       backgroundColor: '#1d1d1d'
    });
 
+   mainWindowState.manage(window);
+   window.on('moved', saveWindowState);
+
    remoteMain.enable(window.webContents);
 
    try {
@@ -70,6 +77,7 @@ async function createMainWindow () {
    }
 
    window.on('closed', () => {
+      window.removeListener('moved', saveWindowState);
       mainWindow = null;
    });
 
@@ -104,6 +112,11 @@ else {
 
    // create main BrowserWindow when electron is ready
    app.on('ready', async () => {
+      mainWindowState = windowStateKeeper({
+         defaultWidth: 1024,
+         defaultHeight: 800
+      });
+
       mainWindow = await createMainWindow();
       createAppMenu();
 
@@ -160,3 +173,7 @@ function createAppMenu () {
 
    Menu.setApplicationMenu(menu);
 }
+
+function saveWindowState () {
+   mainWindowState.saveState(mainWindow);
+}