Cross-Platform Electron Desktop Client for a Small-Business ERP
A small-business ERP
Overview
The desktop face of a small-business ERP: a React application packaged with Electron into an auto-updating, cross-platform desktop app. It delivers data-grid-driven business workflows and connects in real time to the ERP API, including over the local network.
Why It Exists
Small-business operators wanted a native-feeling desktop ERP rather than a browser tab, installable, auto-updating, and able to find and talk to a locally-hosted server. The app packages a rich React UI inside Electron and pairs it with the AdonisJS backend.
What We Built
A React + Electron client with a substantial UI stack: Material-UI (core/icons/lab/pickers), @devexpress/dx-react-grid for dense, sortable, editable data grids, formik/formik-material-ui and jsonschema-form-for-material-ui for forms, CKEditor 5 for rich text, notistack/nprogress for feedback, and kea for state management (alongside connected-react-router). It talks to the backend in real time via @adonisjs/websocket-client and uses auth0-lock for authentication. Notably it does local-network service discovery with bonjour/mdns-js so the desktop client can locate a self-hosted server, and ships proper desktop tooling, electron-builder packaging, electron-updater auto-updates, electron-log, node-notifier, plus CI via Travis and AppVeyor. Internationalization, timezone handling (moment-timezone) and countdown utilities round it out.
Technologies & Approach
Electron wrapped a modern React/Material-UI app so a single codebase shipped as a native desktop product with auto-updates. DevExpress grids handled the data-dense ERP screens; Kea kept state predictable; the Adonis websocket client and mDNS discovery made it a true real-time companion to a (potentially LAN-hosted) backend.
Outcome / Impact
Delivered an installable, auto-updating desktop ERP client with rich data-grid workflows and real-time, locally-discoverable connectivity to its server, completing the two-part ERP product with the AdonisJS API.
Capabilities Demonstrated
- Electron desktop packaging with auto-update (electron-builder/updater)
- Data-grid-intensive business UIs (DevExpress + Material-UI)
- Real-time desktop clients over WebSockets
- Local-network service discovery (mDNS/Bonjour)
- Multi-platform CI build pipelines (Travis + AppVeyor)