Electron App Development

Desktop software with web-speed delivery

Electron applications for Windows, macOS and Linux — GIS desktop tools, control-room consoles, offline data managers and internal utilities — built with React or Next-style tooling and Node.js access to the filesystem, serial ports, GDAL and local databases.

Win · macOS · Linux
one codebase
Chromium + Node
web UI, native reach
Auto-update
signed, notarised builds
main/ipc/gdal.tsTypeScript
1import { ipcMain, dialog } from "electron";
2import { execFile } from "node:child_process";
3import { promisify } from "node:util";
4
5const run = promisify(execFile);
6
7ipcMain.handle("gdal:reproject", async (_e, args: ReprojectArgs) => {
8 const { filePaths } = await dialog.showOpenDialog({
9 filters: [{ name: "Shapefile / GeoPackage", extensions: ["shp", "gpkg"] }],
10 });
11 if (!filePaths[0]) return null;
12
13 const out = filePaths[0].replace(/.w+$/, "_" + args.epsg + ".gpkg");
14 await run(gdalBin("ogr2ogr"), ["-t_srs", "EPSG:" + args.epsg, out, filePaths[0]]);
15 return out; // renderer shows result on map
16});
17
18// preload.ts exposes a typed, minimal API to the renderer
19contextBridge.exposeInMainWorld("gis", {
20 reproject: (a: ReprojectArgs) => ipcRenderer.invoke("gdal:reproject", a),
21});

Representative Electron code from our projects

01Why Electron

What Electron does better than the alternatives

01

Reuse your web code

Components, state and design system from a React or Next.js app run unchanged inside Electron.

02

Full system access

Node.js in the main process gives you filesystem, child processes, serial/USB, native modules and local databases.

03

Mature packaging

electron-builder or Forge produce signed and notarised installers with delta auto-updates for every platform.

04

Predictable rendering

Chromium ships with the app, so map SDKs and WebGL behave identically on every user's machine.

Choose Electron when

  • You have a React/web team and need a desktop app on all three operating systems
  • The app must read local files, talk to hardware or run local processing (GDAL, SQLite)
  • A web product needs an installable, offline-capable desktop counterpart
  • Distribution is via MSI/DMG/AppImage, enterprise software centres or auto-update

Not sure it fits? Compare with the alternatives below or ask us — recommendations are part of every consultation.

Electron vs. alternatives

02What we build with it

Electron in production

GIS desktop utilities

Data converters, QA tools and offline map viewers with GDAL and PostGIS/SQLite.

Control-room consoles

Multi-window dashboards with live feeds, alarms and kiosk/full-screen modes.

Offline field managers

Sync, review and export field data on laptops without connectivity.

Hardware companions

Serial, USB and BLE tools for GNSS receivers, sensors and industrial devices.

Internal productivity tools

Replacing Excel/Access workflows with a proper installable app.

Desktop versions of SaaS

Offline-tolerant desktop clients for existing web platforms.

03How we work with Electron

6 ways we deliver on Electron

From greenfield builds to rescues and migrations — each engagement is scoped, estimated and delivered by engineers who work in Electron daily.

01

New Electron applications

Electron with Vite and React/TypeScript, secure defaults (context isolation, sandboxed renderers, typed IPC via preload), multi-window management and native menus.

  • Electron
  • Vite
  • React
  • TypeScript

02

Native integration

Node native modules, child processes for GDAL/Python, serialport/USB/BLE access, OS notifications, tray apps and protocol handlers.

  • node-gyp / N-API
  • serialport
  • GDAL
  • SQLite

03

Maps & offline data

Mapbox GL JS, MapLibre or ArcGIS Maps SDK for JavaScript with local MBTiles/PMTiles, GeoPackage reading and offline basemaps served from the app itself.

  • MapLibre
  • PMTiles
  • GeoPackage
  • better-sqlite3

04

Packaging, signing & updates

electron-builder/Forge pipelines producing MSI/NSIS, DMG and AppImage/deb, code signing and notarisation, and auto-update servers with staged rollouts.

  • electron-builder
  • Forge
  • electron-updater
  • Notarytool

05

Security hardening

CSP, disabled remote content, IPC validation, secure credential storage with the OS keychain and dependency auditing to meet enterprise IT requirements.

  • contextBridge
  • safeStorage
  • CSP
  • Electronegativity

06

Legacy desktop migration

Replacing VB6, WinForms, Access or aging Java desktop tools with Electron apps that reuse existing databases and file formats.

  • ODBC / SQL
  • File format parsers
  • Strangler migration

04Where it sits

Electron in a complete stack

No technology ships alone. This is the reference architecture we start from on Electron projects — the highlighted layer is where Electron lives; the rest is chosen to fit your data, hosting and team.

Ecosystem we use daily

  • Electron
  • TypeScript
  • Vite
  • React
  • electron-builder
  • Electron Forge
  • electron-updater
  • better-sqlite3
  • serialport
  • GDAL
  • MapLibre
  • PMTiles
  • Playwright
  • Vitest
  • Sentry

Reference architectureElectron layer

  1. 01 · Renderer (UI)
    • React / TypeScript
    • Maps & charts
    • Design system
  2. 02 · Electron
    • Main process
    • Preload / typed IPC
    • Windows · menus · tray
  3. 03 · Local services
    • Node.js APIs
    • GDAL / Python processes
    • Serial / USB / BLE
  4. 04 · Local data
    • SQLite / GeoPackage
    • MBTiles / PMTiles
    • OS keychain
  5. 05 · Cloud (optional)
    • Sync APIs
    • Auto-update server
    • Telemetry

05Honest comparison

Electron or something else?

Electron vs Flutter Desktop

Choose Electron to reuse web code and JavaScript map SDKs; choose Flutter Desktop for a smaller footprint and a shared codebase with a Flutter mobile app.

Electron vs Native (.NET / Swift)

Choose Electron for cross-platform reach and web-team velocity; choose native when you target one OS and need the deepest system integration.

Still undecided? The desktop technology guide walks through when we recommend each option.

All desktop technologies

06FAQ

Electron questions

Looking for the full service? Electron work is delivered under our Desktop Apps practice.

Installers are typically 80–120 MB and memory use is comparable to a browser tab. For tools and consoles this is rarely an issue; when it is, we recommend Flutter Desktop or native.

Start a project

Have a project in mind? Let's build it.

Share your requirement and get an obligation-free consultation, a technology recommendation, and a quote within 48 business hours.

Chat on WhatsApp