Maintenance and new features
Upgrading Electron in stages, fixing bugs and adding screens or features to the application your customers already use.
Examples of deliverables
- Electron upgrade in stages
- New screen or feature
- Fix for an elusive bug
Engineering
Studio
By industry · 12
Veodar
Technology · Desktop with web technology
Electron packages a web application with its own browser and Node.js, and turns it into a desktop program for Windows, macOS and Linux. Many applications in use today are built on it. We maintain and extend Electron apps, review their security and resource use, and migrate them to Tauri when it pays off.
Situations
It almost always starts from an application that already exists and works. The job is to keep it working well: safer, lighter, or with what it is missing.
It got stuck on an old version of Electron and every upgrade breaks something. It is brought up to date in stages, with tests that flag what changes.
Slow startup, a lot of memory and a huge installer. We measure where the time goes and lighten what can be lightened before considering anything more drastic.
In old apps the window can read files and run programs directly. If it loads outside content, that is a risk. What is seen gets separated from what touches the system.
Printing, reading a device, integrating with the system or working offline. It is added as a native module, in Rust when that suits, without redoing the application.
Services
Four kinds of job. They tend to come in this order: first bring the app up to date, then decide whether it stays where it is.
Upgrading Electron in stages, fixing bugs and adding screens or features to the application your customers already use.
Examples of deliverables
Measuring startup and resource use, heavy work moved out of the window and native modules, written in Rust when speed or talking to a device is needed.
Examples of deliverables
Isolating the window, a bridge with the only functions it needs, a content policy and a dependency review, with a report of what was found.
Examples of deliverables
Moving the application to Tauri while keeping the interface: the Node.js part is rewritten in Rust and the installer slims down. It is done in parts, with the two versions comparable.
Examples of deliverables
A working example
Simulated demonstration. The window of an old app loads a third-party plugin that attempts three things. Switch the protections on one by one and launch it again to see what it can no longer do.
Third-party add-on
Code you did not write, loaded inside the window.
Window open
Protections on the window
What the add-on tries
Not run yet.
None of this runs on your machine: the window, the plugin and its attempts are simulated in your browser. The three protections exist in Electron with those effects and are the first thing we review in a legacy app.
Integration
An Electron app has two halves that should not be mixed: the window, which is a web page, and the main process, which is the one that touches the system.
Where it comes from
Where it goes
How we work and what we deliver
We look at the app: Electron version, dependencies, how it is packaged and what the window can do.
We write down what gets updated, what gets fixed and in which order, and what is left as it is.
An installable version with the first block of changes and the tests that cover them.
You test it on your users’ machines, with their data and their devices, before publishing it to everyone.
The state the app is left in, what is worth watching and how to upgrade the version next time.
Questions
Missing yours? Write it to info@veodar.com and we'll reply with a specific question, not a brochure.
Yes. It is mature, has a huge ecosystem and gives the same result on all three systems because it carries its own engine. Its price is weight and resource use. For an app that already exists, maintaining it is usually the sensible thing; for a new one, we compare with Tauri before deciding.
When installer size or memory are a real problem for your users, or when the app needs a faster or safer core. It does not pay off if it depends heavily on Node modules with no equivalent, or if what exists works and hardly changes.
Not for being one. The risk lies in old configurations that give the window direct access to the system and in dependencies left without updates. With the window isolated, a scoped bridge and dependencies up to date, it is as safe as any other desktop application.
Electron ships major versions several times a year and only maintains the latest ones, because it follows the calendar of the browser it carries inside. An app that falls behind piles up unpatched security bugs, so it is worth having an update rhythm, even a slow one.
Yes. Node.js supports native modules and Rust is a good way to write them: they are compiled for each system and the app uses them like any other library. It is a common intermediate step before a migration, or instead of one.
Often, yes. Deferred startup, fewer open windows, heavy work outside the interface and lighter dependencies give room. The first step is to measure; sometimes that is enough and the migration is no longer needed.
Updated:
Related services
Other technologies
Get started
The version it uses and what worries you most about it are enough for a first answer.
What helps us assess it
Before you write, see how we price a project or our solutions by department.
Cookies
We store your language and this choice so the site works. With your permission, we measure visits and speed anonymously, with no tracking cookies or advertising.
Cookies
Necessary
Your language, this choice and spam protection on the contact form.
Anonymous measurement
Page views and load times, in aggregate, through Vercel. No cookies, no tracking across sites.