Top Related Projects
Explore the Electron APIs
Clone to try a simple Electron app
A complete solution to package and build a ready for distribution Electron app with โauto updateโ support out of the box
:electron: ๐ The easiest way to get started with Electron
A Foundation for Scalable Cross-Platform Apps
An Electron & Vue.js quick start boilerplate with vue-cli scaffolding, common Vue plugins, electron-packager/electron-builder, unit/e2e testing, vue-devtools, and webpack.
Quick Overview
The sindresorhus/awesome-electron repository is a curated list of useful resources for developing applications with Electron. It serves as a comprehensive collection of tools, boilerplates, videos, and other materials to help developers create cross-platform desktop applications using web technologies.
Pros
- Extensive collection of resources for Electron development
- Regularly updated with new and relevant content
- Well-organized into categories for easy navigation
- Maintained by a respected developer in the open-source community
Cons
- May be overwhelming for beginners due to the large number of resources
- Some listed resources might become outdated over time
- Lacks detailed explanations or comparisons of listed items
- Primarily focuses on English-language resources
Note: As this is not a code library but a curated list of resources, the code examples and getting started instructions sections have been omitted.
Competitor Comparisons
Explore the Electron APIs
Pros of electron-api-demos
- Provides interactive examples of Electron APIs
- Offers a hands-on learning experience for developers
- Includes working code samples that can be easily adapted
Cons of electron-api-demos
- Limited in scope to official Electron APIs
- May not cover advanced or third-party tools and libraries
- Requires downloading and running the application locally
Code Comparison
electron-api-demos:
const { app, BrowserWindow } = require('electron')
function createWindow () {
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadFile('index.html')
}
app.whenReady().then(createWindow)
awesome-electron:
## Apps
- [Atom](https://atom.io) - Text editor.
- [Visual Studio Code](https://code.visualstudio.com) - Cross-platform IDE.
- [Hyper](https://hyper.is) - Terminal.
Summary
electron-api-demos is an interactive application showcasing Electron's core APIs with practical examples. It's excellent for hands-on learning but limited to official APIs. awesome-electron, on the other hand, is a curated list of Electron resources, tools, and applications. It provides a broader overview of the Electron ecosystem but doesn't offer interactive demos or code samples. The choice between them depends on whether you need practical API examples or a comprehensive resource list for Electron development.
Clone to try a simple Electron app
Pros of electron-quick-start
- Provides a minimal, ready-to-run Electron application template
- Ideal for beginners to quickly start building Electron apps
- Includes basic project structure and configuration files
Cons of electron-quick-start
- Limited in scope, focusing only on a basic starting point
- Lacks comprehensive resources and examples for advanced development
- Does not provide an extensive list of tools, libraries, or community projects
Code Comparison
electron-quick-start:
const { app, BrowserWindow } = require('electron')
function createWindow () {
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadFile('index.html')
}
app.whenReady().then(createWindow)
awesome-electron:
## Apps
- [Atom](https://atom.io) - Text editor.
- [Visual Studio Code](https://code.visualstudio.com) - Cross-platform IDE.
## Boilerplates
- [electron-boilerplate](https://github.com/sindresorhus/electron-boilerplate) - Boilerplate to kickstart creating an app.
Summary
electron-quick-start is a minimal template for starting Electron projects, ideal for beginners. It provides a basic structure and configuration but lacks comprehensive resources.
awesome-electron is a curated list of Electron resources, tools, and projects. It offers a wide range of information but doesn't provide a ready-to-run application template.
Choose electron-quick-start for a quick start in Electron development, or awesome-electron for a comprehensive resource collection to enhance your Electron projects.
A complete solution to package and build a ready for distribution Electron app with โauto updateโ support out of the box
Pros of electron-builder
- Provides a complete solution for packaging and distributing Electron applications
- Offers automated builds and updates for multiple platforms (Windows, macOS, Linux)
- Includes code signing and notarization features for enhanced security
Cons of electron-builder
- Focuses solely on building and packaging, not a comprehensive resource for Electron development
- May have a steeper learning curve for beginners compared to a curated list of resources
- Requires more setup and configuration for specific project needs
Code comparison
electron-builder:
const builder = require('electron-builder')
builder.build({
config: {
appId: 'com.example.app',
mac: { category: 'public.app-category.developer-tools' },
win: { target: 'nsis' },
linux: { target: 'AppImage' }
}
})
awesome-electron:
## Apps
- [Atom](https://atom.io) - Text editor.
- [Visual Studio Code](https://code.visualstudio.com) - Cross-platform IDE.
## Boilerplates
- [electron-boilerplate](https://github.com/sindresorhus/electron-boilerplate) - Boilerplate to kickstart creating an app.
Note: awesome-electron is a curated list of resources, so it doesn't contain executable code but rather links and descriptions.
:electron: ๐ The easiest way to get started with Electron
Pros of Fiddle
- Interactive playground for experimenting with Electron code
- Built-in version management for testing across Electron releases
- Integrated console and preview window for immediate feedback
Cons of Fiddle
- Limited to small-scale experiments and prototypes
- Lacks comprehensive resources and examples for larger projects
- Not a curated list of Electron-related tools and libraries
Code Comparison
Fiddle allows direct code editing and execution:
const { app, BrowserWindow } = require('electron')
function createWindow () {
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadFile('index.html')
}
app.whenReady().then(createWindow)
Awesome Electron provides links to code examples:
- [Electron API Demos](https://github.com/electron/electron-api-demos)
- [Simple Samples](https://github.com/electron/simple-samples)
- [Electron Forge](https://github.com/electron-userland/electron-forge)
Summary
Fiddle is an interactive tool for hands-on Electron development, while Awesome Electron is a curated list of resources. Fiddle excels in quick prototyping and version testing, but lacks the breadth of information found in Awesome Electron. The latter provides a comprehensive collection of tools, libraries, and examples, making it more suitable for discovering resources for larger projects and staying updated with the Electron ecosystem.
A Foundation for Scalable Cross-Platform Apps
Pros of electron-react-boilerplate
- Ready-to-use boilerplate with React and Electron integrated
- Includes hot-reloading and production builds out of the box
- Comes with TypeScript support and testing setup
Cons of electron-react-boilerplate
- Less flexibility in choosing specific tools or libraries
- May include unnecessary dependencies for simpler projects
- Requires learning the specific project structure and conventions
Code Comparison
electron-react-boilerplate:
import { app, BrowserWindow, shell, ipcMain } from 'electron';
import { resolveHtmlPath } from './util';
let mainWindow: BrowserWindow | null = null;
const createWindow = async () => {
mainWindow = new BrowserWindow({
// ... window configuration
});
awesome-electron (example from a linked resource):
const { app, BrowserWindow } = require('electron');
function createWindow() {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
});
Summary
electron-react-boilerplate provides a complete setup for Electron and React development, including TypeScript and testing. It's ideal for quickly starting a new project with these technologies. However, it may be overkill for simpler applications and requires learning its specific structure.
awesome-electron, on the other hand, is a curated list of Electron resources, offering more flexibility in choosing tools and libraries. It's better suited for developers who want to customize their Electron setup or learn about various Electron-related projects and resources.
An Electron & Vue.js quick start boilerplate with vue-cli scaffolding, common Vue plugins, electron-packager/electron-builder, unit/e2e testing, vue-devtools, and webpack.
Pros of electron-vue
- Provides a complete boilerplate for Electron + Vue.js projects
- Includes pre-configured webpack and vue-loader setup
- Offers hot-reloading during development
Cons of electron-vue
- More opinionated and less flexible than a curated list
- May include outdated dependencies if not regularly maintained
- Limited to Vue.js as the frontend framework
Code Comparison
electron-vue (template structure):
โโ src/
โ โโ main/
โ โ โโ index.js
โ โโ renderer/
โ โ โโ App.vue
โ โ โโ main.js
โ โโ index.ejs
โโ static/
โโ package.json
awesome-electron (example entry):
- [Electron Forge](https://github.com/electron-userland/electron-forge) - Complete tool for creating, publishing, and installing modern Electron applications.
Summary
electron-vue is a project boilerplate specifically for Electron applications using Vue.js, providing a ready-to-use development environment. awesome-electron, on the other hand, is a curated list of Electron resources, tools, and applications, offering a broader range of options and information for Electron developers. While electron-vue is more focused and opinionated, awesome-electron provides a comprehensive overview of the Electron ecosystem.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Awesome Electron
Useful resources for creating apps with Electron
Electron is an open-source framework for creating desktop apps using web technologies. It combines the Chromium rendering engine and the Node.js runtime.
Menu Bar Spacing
Customize the gap between menu bar items on macOS
Contents
Apps
Made with Electron.
Open Source
Featured
- WebTorrent - Streaming torrent client.
- Min - Minimal web browser.
- Hyper - Terminal.
- Visual Studio Code - Cross-platform IDE.
Other
- Git-it - Teaches you Git and GitHub.
- Caprine - Unofficial Facebook Messenger app.
- Simplenote - Note keeper.
- Abricotine - Markdown editor with inline preview.
- Kap - Screen recorder with GIF support.
- Medis - Redis database management.
- SmartMirror - Voice controlled smart mirror.
- Beaker - Browser with peer-to-peer web protocols.
- KeeWeb - Unofficial KeePass app.
- Gitify - GitHub notifications in your menubar.
- SpaceRadar - Interactive disk space and memory visualization.
- Leanote - Cloud notepad.
- Loop Drop - MIDI looper and synth for live electronic music performances.
- Pomodoro - Timer based on the Pomodoro Technique.
- Sia-UI - Decentralized file storage system based on cryptocurrency technology.
- MarkRight - GitHub flavored Markdown editor with live preview.
- Sqlectron - SQL client.
- Light Table - Code editor with instant feedback.
- Google Play Music Desktop Player - Unofficial Google Play Music app.
- Chrome DevTools - Chrome DevTools packaged as an app.
- Proton - Markdown editor with live preview.
- Hawkpass - Password generator.
- Boostnote - Markdown note & code snippet app for developers.
- Before Dawn - Screensaver tool.
- Catify - Utility for Spotify.
- Ansel - Image organizer.
- Tockler - Tracks your time.
- Mattermost - Mattermost client.
- Crypter - Secure encryption client.
- YakYak - Unofficial Google Hangouts app.
- Museeks - Music player.
- Sabaki - Go/Baduk/Weiqi board.
- Wire - Messenger and calling app.
- Extraterm - Terminal.
- Stacer - Ubuntu system optimizer.
- Inpad - Notes app with GitHub-flavored Markdown.
- Cerebro - Launcher with inline previews.
- LosslessCut - Lossless video trimming & cutting.
- Buka - E-book management.
- Insomnia - Create and manage HTTP requests.
- Tusk - Unofficial Evernote app.
- Buttercup Desktop - Password manager.
- Mailspring - Extensible email client. (Fork of Nylas Mail)
- Headset - Discover, collect, and listen to music from YouTube.
- Nuclear - Music player that streams from free sources.
- Mark Text - Real-time preview Markdown editor.
- Pomotroid - Pomodoro timer.
- Netron - Visualizer for deep learning and machine learning models.
- Etcher - Flash OS images to SD cards and USB drives.
- Notable - Markdown-based note-taking.
- Unsplash Wallpapers - Set desktop wallpaper from Unsplash.
- Motrix - Download manager.
- Franz - Skype, Slack, Hangouts, WhatsApp, Grape, Telegram, FB Messenger, Hipchat in the same app.
- Gmail Desktop - Unofficial Gmail app.
- Upcount - Invoicing.
- ExifCleaner - Clean image metadata with drag and drop.
- massCode - Code snippet manager for developers.
- Swifty - Password manager.
- MQTTX - Client for MQTT, which is a lightweight messaging protocol.
- LightProxy - Web debugging proxy.
- Beekeeper Studio - Cross-platform SQL editor and database manager.
- Mouseless - Keyboard shortcut training and look-up.
- Glyphfinder - Unicode character search.
- Graviton Editor - Cross-platform code editor.
- Yana - Notebook app with rich-text notes, nested note organization and global search.
- SpaceEye - Live satellite imagery for your desktop background.
- Heroic Games Launcher - Alternative Epic games launcher.
- VIR - Intelligent time manager with automatic planning.
- Browserosaurus - Browser prompter for macOS.
- linked - Daily journal.
- shadowsocks-electron - Cross-platform Shadowsocks client.
- Sigma File Manager - Modern file manager.
- Ostara - Monitor and interact with Spring Boot apps via Actuator.
- PikaTorrent - BitTorrent client.
- Wave Terminal - Open-source terminal with AI integration.
Closed Source
Featured
Other
- GitKraken - Git client.
- 1Clipboard - Universal clipboard manager.
- Postman - Create and send HTTP requests.
- Slack - Desktop version.
- Avocode - Share design and collaborate.
- Prepros - Compile almost any preprocessing language with live browser refresh.
- Stremio - Media center.
- Typetalk - Share and discuss ideas with your team through instant messaging.
- Pingendo - Bootstrap prototyping.
- Spreaker Studio - Audio recording and broadcasting.
- MockingBot - Prototyping tool for designing apps.
- Caret - Markdown editor.
- Remember - Business card management. (Korean)
- MongoDB Compass - Official MongoDB app.
- Freeter - Organizer for freelancers & creatives.
- WhatsApp - Official WhatsApp app.
- CatLight - Build status notifier.
- Discord - Voice and text chat.
- Cocos Creator - Game editor for creating web and native games for Cocos2D-x.
- Inkdrop - Markdown notebook for hackers.
- Exodus - Secure, manage, and exchange blockchain assets like Bitcoin and Ethereum.
- Hackolade - Data modeling for NoSQL and multi-model databases.
- CashNotify - Monitor your Stripe accounts from your menu bar.
- Mockoon - Mock servers in seconds.
- Twitch - Official Twitch app.
- Fenรยชtre - Picture-in-picture for your Mac.
- Cleavr - Provision servers and deploy web apps.
- Brandy - A brand asset manager for your menu bar.
- Cacher - Cloud-based, team-enabled code snippet manager with Gist sync.
- MusicPlus - Free music app for macOS and Windows.
- Mingo - MongoDB GUI.
- Moon Modeler - Schema design tool for MongoDB, Mongoose, and MariaDB.
- Notion - All-in-one workspace for your notes, tasks, wikis, and databases.
- FATpick - Guitar tablature viewer that scores your performance as you play along.
- Taskade - Realtime organization and collaboration tool for distributed teams with tasks, notes, and chat.
- Coloban - All-in-one project management tool with chats, Kanban, Gantt, calls, screenshare, and more.
- Dynobase - AWS DynamoDB GUI.
- Lotus - Keep up with GitHub notifications without stress.
- RunJS - Playground for JavaScript and TypeScript.
- OpenSFTP - Integrated SSH and SFTP workspace client.
Samples
- Electron API usage - Sample apps illustrating usage of Electron APIs.
- Screen Recorder - WebRTC screen recorder.
- Activity Monitor - Shows a doughnut chart of the CPU system, user, and idle activity time.
- Hash - Shows the hash values of entered text using different algorithms.
- Prices - Shows the current price of oil, gold, and silver using the Yahoo Finance API.
Boilerplates
- electron-boilerplate - Boilerplate to kickstart creating an app - by sindresorhus.
- generator-electron - Scaffold out an app boilerplate.
- electron-boilerplate - Comprehensive boilerplate which even generates installers - by szwacz.
- electron-react-boilerplate - Boilerplate based on React and webpack.
- electron-quick-start - Clone the repo to try a simple app.
- bozon - Scaffold, run, test, and package your app.
- secure-electron-template - Security-focused boilerplate for creating apps with React, Redux, Webpack, and i18next.
- angular-electron - Fast bootstrapping with Angular, Electron, TypeScript, SASS, and Hot Reload.
- vite-electron-builder - Secure boilerplate for Electron app based on Vite. TypeScript + Vue/React/Angular/Svelte/Vanilla.
Tools
For Electron
- electron-builder - Create installers.
- electron-packager - Package and distribute your app.
- electron-debug - Adds useful debug features.
- electron-is-dev - Check if Electron is running in development.
- electron-localshortcut - Add keyboard shortcuts locally to a window.
- fix-path - Fix the $PATH on macOS when run from a GUI app. Useful when spawning a child process.
- electron-dl - Simplified file downloads.
- electron-release-server - Self-hosted release server with front-end & auto-updater support.
- electron-rebuild - Rebuild native Node.js modules against the currently installed Electron version.
- debug-menu - Chrome-like "inspect element" context-menu.
- electron-installer-debian - Create a Debian package.
- electron-installer-redhat - Create a Red Hat package.
- electron-installer-windows - Create a Windows package.
- electron-download - Download the Electron release zip from GitHub.
- electron-osx-sign - Code-signing for macOS apps.
- ember-electron - Build, test, and package Ember apps.
- electron-store - Save and load data like user preferences, app state, cache, etc.
- electron-context-menu - Extensible context menu.
- NeDB - Embedded persistent or in-memory database.
- RxDB - A realtime NoSQL database.
- electron-devtools-installer - Install DevTools extensions from the Chrome Web Store.
- electron-log - Simple logging.
- electron-about-window - 'About This App' window.
- elemon - Live-reload your app during development.
- electron-is-accelerator - Check if a string is a valid accelerator.
- electron-pdf-window - View PDF files in browser windows.
- got - Simplified HTTP requests.
- electron-unhandled - Catch unhandled errors and promise rejections.
- electron-util - Useful utilities for developing apps and modules.
- electron-reloader - Simple auto-reloading during development.
- electron-serve - Static file serving (Useful for routing, like
react-router
). - electron-timber - Pretty logger.
- chromium-net-errors - Chromium's network errors as custom error classes.
- run-electron - Run Electron without all the junk terminal output.
- debugtron - Debug in-production Electron-based apps.
- electron-better-ipc - Simplified IPC communication.
- electron-chrome-extension - Add support for Chrome extensions.
- trilogy - TypeScript SQLite database layer with support for both native C++ and pure JavaScript backends.
- adblocker-electron - Block ads and trackers.
- electronmon - Monitor and reload apps out-of-process during development.
- electronegativity - Identify misconfigurations and security anti-patterns.
- UpdateRocks! - Auto-update service. Free for open source projects.
- electron-vite - Fast and easy-to-use build tool integrated with Vite.
- pluggable-electron - Build apps that can be extended through plugins.
- Hydraulic Conveyor - CLI tool that deploys apps without needing any special update servers, multi-platform CI, or code changes.
- Aptabase - Analytics for apps. Open source, privacy-friendly, and simple.
Using Electron
- nativefier - Create an app of any website.
- electron-stream - Streaming wrapper.
- electron-pdf - Generate PDF from URL, HTML, or Markdown files on the command-line.
- electron-mocha - Run Mocha tests in Electron.
- Reactotron - Inspect your React and React Native apps.
- jest-electron - Run and debug Jest unit tests in a browser environment.
Components
- menubar - Menubar app framework.
- React Desktop - UI toolkit for macOS and Windows built with React.
- chrome-tabs - Chrome like tabs.
- Xel - Widget toolkit for building native-like apps.
Documentation
- Quick Start
- Official docs
- Essential Electron - Concise overview.
Articles
- Electron Fundamentals
- Building a desktop application with Electron
- Codesigning your app for macOS
- Auto-updating apps for macOS and Windows: The complete guide
- Building a desktop app with Electron, React, and Redux
- Introducing BrowserView for Electron - New Electron API to embed web apps with fewer bugs and improved performance.
- Migrating Slack's Desktop App to BrowserView - Slack rewrote their Electron app with
BrowserView
, Redux, Rx, and TypeScript, to fix its performance problems. - Electron on the App Store - A 5-part series about the journey of making and publishing an Electron app to the Mac App Store.
- Building a file explorer with Electron, Quasar, and Vue - Focused on design and code decisions and Electron security.
- Using Google Analytics to gather usage statistics in Electron - How to collect anonymous user statistics.
- Notarizing your Electron app - How to configure your app packaging for Apple's notarization.
- Making Electron apps feel native on Mac
Books
- Developing an Electron Edge - Preview รฐยยยฒ
- Electron in Action รฐยยยฒ
- Cross-Platform Desktop Applications รฐยยยฒ
Videos
- Getting Started with Electron 1.x
- Packaging and Distributing Electron Desktop Apps
- Multi Window Electron Desktop Apps
- The State of Electron
- Cross-Platform Desktop Apps with Electron
- Building Native Desktop apps using Electron
- The New Desktop: Electron, React, & Pixel-Perfect Native-Feeling Experiences
- Building Desktop Apps with Node.js and Electron
- Electron Fundamentals course - Pluralsight รฐยยยฒ
- Electron: Building Cross Platform Desktop Apps - Lynda รฐยยยฒ
- Build a desktop application with Electron - Egghead รฐยยยฒ
- Build Cross-Platform Desktop Apps with Electron - Frontend Masters รฐยยยฒ
- Electron Meetup SF, November 2017 - Includes some good talks on improving app startup time, debugging crashes, etc.
- Make Your Electron App Feel at Home Everywhere - Tips on making your app feel more native on macOS, Windows, and Linux without sacrificing your own style.
Podcasts
- Hanselminutes: Creating cross-platform Electron apps with Jessica Lord
- The Changelog #216: GitHub's Electron with Zeke Sikelianos
- Full Stack Radio #48: Jessica Lord - Building Desktop Apps with Electron
Community
- Stack Overflow
@electronjs
on Twitter- electron-br (Brazilian Portuguese)
- electron-pl (Polish)
@electron_ru
on Telegram (Russian)electronjs
on Facebook- Product Hunt
Contribute
Contributions welcome! Read the contribution guidelines first.
Related
Top Related Projects
Explore the Electron APIs
Clone to try a simple Electron app
A complete solution to package and build a ready for distribution Electron app with โauto updateโ support out of the box
:electron: ๐ The easiest way to get started with Electron
A Foundation for Scalable Cross-Platform Apps
An Electron & Vue.js quick start boilerplate with vue-cli scaffolding, common Vue plugins, electron-packager/electron-builder, unit/e2e testing, vue-devtools, and webpack.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot