:electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS (by electron)

Electron Alternatives

Similar projects and alternatives to Electron

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better Electron alternative or higher similarity.

Electron reviews and mentions

Posts with mentions or reviews of Electron. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-12.
  • CVE-2023-4863: Heap buffer overflow in WebP (Chrome)
    18 projects | news.ycombinator.com | 12 Sep 2023
    It does, see [0]. Fun fact: Signal desktop, which uses Electron under the hood, is running without sandbox on Linux [1][2].

    [0] https://github.com/electron/electron/pull/39824

    [1] https://github.com/signalapp/Signal-Desktop/issues/5195

    [2] https://github.com/signalapp/Signal-Desktop/pull/4381

  • $Home, Not So Sweet $Home
    7 projects | news.ycombinator.com | 16 Aug 2023
  • Electron, Angular & Firebase "INTERNAL ASSERTION FAILED: Expected a class definition"
    2 projects | /r/electronjs | 2 Jul 2023
    import {app, BrowserWindow, screen} from 'electron'; import * as path from 'path'; import * as fs from 'fs'; let win: BrowserWindow | null = null; const args = process.argv.slice(1), serve = args.some(val => val === '--serve'); function createWindow(): BrowserWindow { const size = screen.getPrimaryDisplay().workAreaSize; // Create the browser window. win = new BrowserWindow({ x: 0, y: 0, width: size.width, height: size.height, webPreferences: { nodeIntegration: true, allowRunningInsecureContent: (serve), contextIsolation: false, }, }); win.maximize(); win.show(); if (serve) { const debug = require('electron-debug'); debug(); require('electron-reloader')(module); win.loadURL('http://localhost:4200'); } else { // Path when running electron executable let pathIndex = './index.html'; if (fs.existsSync(path.join(__dirname, '../dist/index.html'))) { // Path when running electron in local folder pathIndex = '../dist/index.html'; } const url = new URL(path.join('file:', __dirname, pathIndex)); win.loadURL(url.href); } // Emitted when the window is closed. win.on('closed', () => { // Dereference the window object, usually you would store window // in an array if your app supports multi windows, this is the time // when you should delete the corresponding element. win = null; }); return win; } try { // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. // Added 400 ms to fix the black background issue while using transparent window. More detais at https://github.com/electron/electron/issues/15947 app.on('ready', () => setTimeout(createWindow, 400)); // Quit when all windows are closed. app.on('window-all-closed', () => { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', () => { // On OS X it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (win === null) { createWindow(); } }); } catch (e) { // Catch Error // throw e; }
  • Wayland Is Pretty Good
    4 projects | news.ycombinator.com | 29 Jun 2023
    Wayland as a concept is pretty good.

    But I would strongly urge anyone from switching to it unless you have nostalgia about the bug-ridden nature of the 2010-era Linux Desktop.

    I’m still using it, by the way, with Hyprland, but I think I’ll be switching back to X11/i3 soon. Here’s a taste of my experience thus far.

    Electron apps are a mess. This isn’t (all) wayland’s fault but for issue lists like https://github.com/electron/electron/issues?q=is%3Aissue+is%... to exist, proponents of wayland would find it in their best interest to tackle the problems given the large number of applications that use electron.

    Screen sharing doesn’t work. All the old fixes are to be ignored - it has regressed. Again. Font sizes are screwy. VSCode simply doesn’t work. The handy slack shortcuts like ctrl+shift+space for mute that work anywhere only work when slack is focused on Wayland.

    If you have multiple monitors of different scaling factors, moving a window from one to the other results in it becoming unbearably blurry.

    wl-clipboard and vim with clipboard=unnamedplus (the only reasonable clipboard) simply don’t work well together, and have a history of bugs going back for FOUR YEARS. At the moment, holding down x or d for repeated deletes is INSANELY slow. As in, I’m used to it working at my repeat rate of ~60 deletes per second and it barely does 3.

    Every now and then, my cursor becomes huge. Every now and then, it becomes tiny. No idea why, and I’m afraid to ask.

    Basically, it’s not a comfortable experience.

  • Discord is opening the monetization floodgates with microtransaction stores
    2 projects | news.ycombinator.com | 22 Jun 2023
    It's interesting that there's a workaround. I always assumed it was an upstream Chromium [0] or Electron [1] issue.

    0: https://bugs.chromium.org/p/chromium/issues/detail?id=114376...

    1: https://github.com/electron/electron/issues/10515

  • How to implement in app purchase?
    2 projects | /r/electronjs | 22 Jun 2023
    This file is handing the calls to the StoreKit API exposed by Apple for Mac.
  • How to split the main.js to make the code cleaner and maintainable?
    2 projects | /r/electronjs | 8 May 2023
    Electron does not currently support ES modules (import). But you can certainly break up your code using CommonJS (require) or convert your ESM-style code with Typescript, Webpack, Vite, etc.
    2 projects | /r/electronjs | 8 May 2023
    There’s a pr open for it https://github.com/electron/electron/pull/37535 so 🤞🤞🤞 we get it soon.
  • [Notion] Un moyen d'écrire des extensions pour la notion?
    2 projects | /r/enfrancais | 21 Apr 2023
  • `puppeteer-extra-plugin-stealth` but for Electron's `webview` ?
    2 projects | /r/webscraping | 14 Apr 2023
    Is there any equivalent for electron's webview ?
  • A note from our sponsor - Mergify
    blog.mergify.com | 29 Sep 2023
    Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free. Learn more →


Basic Electron repo stats
1 day ago
Analyze your C and C++ projects with just one click.
SonarCloud, a cloud-based static analysis tool for your CI/CD workflows, offers a one-click automatic analysis of C and C++ projects hosted on GitHub. Zero configuration and free for open-source projects! Analyze free.