Build cross-platform desktop applications with Electron.js using JavaScript, HTML, and CSS. Use when creating Windows, macOS, or Linux desktop apps, implementing auto-updaters, building installers (DMG, MSI, RPM), or distributing to app stores.
Build cross-platform desktop apps with JavaScript, HTML, and CSS.
# Create new Electron app with Electron Forge
npx create-electron-app@latest my-app
cd my-app
npm start
my-app/
├── package.json
├── main.js # Main process (Node.js)
├── preload.js # Bridge between main/renderer
├── renderer.js # Renderer process (browser)
└── index.html # UI
BrowserWindow, Menu, dialog, Tray// main.js
const { ipcMain } = require('electron');
ipcMain.handle('get-data', async () => {
return await fetchData();
});
// preload.js
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('api', {
getData: () => ipcRenderer.invoke('get-data')
});
// renderer.js
const data = await window.api.getData();
const { Menu } = require('electron');
const template = [
{ label: 'File', submenu: [{ role: 'quit' }] }
];
Menu.setApplicationMenu(Menu.buildFromTemplate(template));
const { dialog } = require('electron');
const result = await dialog.showOpenDialog({ properties: ['openFile'] });
new Notification({ title: 'Hello', body: 'World' }).show();
const { autoUpdater } = require('electron-updater');
autoUpdater.checkForUpdatesAndNotify();
# Build for current platform
npm run make
# Build installers
npx electron-builder --win --mac --linux