sindresorhus / awesome-electron Goto Github PK
View Code? Open in Web Editor NEWUseful resources for creating apps with Electron
License: Creative Commons Zero v1.0 Universal
Useful resources for creating apps with Electron
License: Creative Commons Zero v1.0 Universal
The Other list became quite long. Maybe it's worth it sorting projects alphabetically?
The Pixate app has been deprecated for a while now (since 31 October 2016) The team behind it are not supporting it anymore and the site is just a message.
http://www.pixate.com/
Hey @sindresorhus would you mind giving my colleagues @jlord and @kevinsawicki access to this repo, so they can help maintain as necessary?
I've added the four of us as owners of the npm package:
โฏ npm owner ls awesome-electron
jlord <[email protected]>
kevinsawicki <[email protected]>
sindresorhus <[email protected]>
zeke <[email protected]>
This is a great list. I believe Obsidian (closed source) https://en.wikipedia.org/wiki/Obsidian_(software) is also electron based (it says so on the wikipedia page) and it is quite popular (I could be wrong but it seems to be the second most favorited note app after Notion). For example, the obsidian subreddit has 107 000 members https://www.reddit.com/r/ObsidianMD/ . However, It is rather new as the wikipedia page shows that it was made in 2020.
Not sure if this is the write place for this, but just putting an idea on the table that I would love to see -- creating an extensible PDF viewer based on Electron, possibly forked from Atom Shell the way Nylas is doing for email.
The hard part of rendering PDFs is already handled nicely by PDF.js, so it would be a matter of integration it into the Electron framework.
The README lists Visual Studio Code as Closed Source. Can you please update it to open source since the source of Code is on Github?
We can remove deprecated apps for eg Anatine.
Hi there, great comprehensive list you've put together there!
Just thought I'd point out that the original devs behind Nylas N1 have ported it over to a new project called Mailspring, which is also using Electron.
Hey,
There's another podcast episode with Jessica Lord talking about electron and how it came to be.
This time on "NodeUp: A Node.js Podcast" (NodeUp is already on awesome-nodejs list)
"onehundredseven - 1:1 w/ Jessica Lord" http://nodeup.com/onehundredseven
I listen to these NodeUp podcasts, and this episode got me into electron application development, so i really think it's awesome and should be on the list ๐
I think it is a nice addition, in the style of this https://github.com/Kickball/awesome-selfhosted
I'm voluntering for doing it, of course
It link to an Interstellar soundtrack song...
In the Articles of awesome-electron, the fifth list item, How To Make Your Electron App Sexy, redirects to a page that seems to no longer be available.
He doesn't seem to have the articles up on medium or any other blog site, so, the redirect's link cannot be changed.
I heard in an interview with a Brave dev (on The Changelog) that Brave is going to rebase itself on a Chromuim fork as opposed to being an electron app.
Can anyone confirm that is is what has happened and if so, remove it from this list?
Nothing big, but i thought it might qualify. I just made this simple video editor for super quickly discarding useless parts from big raw video files from video cameras/drones etc without re-encoding. It's based on Electron and React and uses ffmpeg (not included) for the processing. I'm aware of the 20 day wait time, so I'll just put it here to maybe see if people find it useful.
I have enabled the Discussions feature. It would be a good place to ask Electron related questions, show off your prototypes, get feedback on your projects, etc. Please be kind and constructive.
This issue can be used for discussing adding new categories and other meta things.
Don't use discussions for suggesting additions to the list.
I'm wondering how to generate a share menu extension to share stuff with an Electron application.
Is this exclusively a macOS thing or are there any tools to make this happen?
Not sure if this is awesome enough, so I'm submitting as an issue first:
https://github.com/progrium/electron-largetype
Hello, I just noticed that the Wagonhq URL does not work, replacing https by http seems to work.
I took a quick look at the inside of the Vivaldi deb file, and the file layout seems considerably different from electron's. The executable itself is tiny and libnode and such are missing.
Where exactly is it mentioned that Vivaldi is based on electron? Just wondering, as I'm sure we don't want to mislead people.
I have noticed people make pull request to add their icon on top of the row. I keep checking regularly on what's new on the list. It is difficult to keep track of icons getting here and there each time someone adding it.
May I propose
1.Featured Section: where only known developers like Microsoft Facebook and other big names can put pull request. Electron team can arrange them however you like.
2.Other section: where it must be at the end and not in middle of lines.
it will make it easy for people like me to follow up on progress and community efforts.
you might add https://github.com/electron-userland/electron-forge
It's the new wizz bang generator...
this video is also an awesome video (talk) about electron
so i think this can be added in list of videos
title : Cross-Platform Desktop Apps with Electron
link : https://www.youtube.com/watch?v=Xs3Oc4weZbw
Electron version:0.37.2
Operating system:Windows
I have created an electron app as a wrapper of a website.
Below is the code:
Dev Package.json:
{
"devDependencies": {
"electron-builder": "^3.27.0",
"electron-prebuilt": "^0.37.2"
},
"build": {
"app-bundle-id": "EnterpriseSearch",
"app-category-type": "public.app-category.productivity",
"ignore":"node_modules/electron-osx-sign-tf,node_modules/archiver",
"win": {
"iconUrl": "http://eatodo.s3.amazonaws.com/icon.ico"
}
},
"scripts": {
"postinstall": "install-app-deps",
"start": "electron ./app --enable-logging",
"dev": "NODE_ENV='development' npm run start",
"dist": "npm run dist:win64",
"dist:win64": "build --platform win32 --arch x64"
}
}
Application Package.json:
{
"name":"EnterpriseSearch",
"version":"0.1.0",
"main":"main.js",
"author":"TCS",
"description": "This is a desktop app for Enterprise Search."
}
Main.js:
if (require('electron-squirrel-startup')) return;
var app = require('app');
// this should be placed at top of main.js to handle setup events quickly
if (handleSquirrelEvent()) {
// squirrel event handled and app will exit in 1000ms, so don't do anything else
return;
}
function handleSquirrelEvent() {
if (process.argv.length === 1) {
return false;
}
const ChildProcess = require('child_process');
const path = require('path');
const appFolder = path.resolve(process.execPath, '..');
const rootAtomFolder = path.resolve(appFolder, '..');
const updateDotExe = path.resolve(path.join(rootAtomFolder, 'Update.exe'));
const exeName = path.basename(process.execPath);
const spawn = function(command, args) {
let spawnedProcess, error;
try {
spawnedProcess = ChildProcess.spawn(command, args, {detached: true});
} catch (error) {}
return spawnedProcess;
};
const spawnUpdate = function(args) {
return spawn(updateDotExe, args);
};
const squirrelEvent = process.argv[1];
switch (squirrelEvent) {
case '--squirrel-install':
case '--squirrel-updated':
// Optionally do things such as:
// - Add your .exe to the PATH
// - Write to the registry for things like file associations and
// explorer context menus
// Install desktop and start menu shortcuts
spawnUpdate(['--createShortcut', exeName]);
setTimeout(app.quit, 1000);
return true;
case '--squirrel-uninstall':
// Undo anything you did in the --squirrel-install and
// --squirrel-updated handlers
// Remove desktop and start menu shortcuts
spawnUpdate(['--removeShortcut', exeName]);
setTimeout(app.quit, 1000);
return true;
case '--squirrel-obsolete':
// This is called on the outgoing version of your app before
// we update to the new version - it's the opposite of
// --squirrel-updated
app.quit();
return true;
}
};
var BrowserWindow = require('browser-window');
var win = null;
//app.commandLine.appendSwitch('ignore-certificate-errors');
//app.commandLine.appendSwitch('disable-http-cache');
//app.commandLine.appendSwitch("disable-renderer-backgrounding");
app.on('ready', function() {
win = new BrowserWindow({webPreferences: { nodeIntegration: false}});
win.loadUrl('https://enterprisesearch.ultimatix.net/enterprisesearch/');
win.on('closed', () => {
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
win = null;
});
});
// 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();
}
});
I have build the installer using electron builder.
But final exe takes around 1 minute to load and display the page.
How can I improve it's performance.
There are a few projects you may want to add to your list:
Create installers for Windows and macos
Cross-platform, js/npm based auto-updater
I'm working on the updater module. It would be nice to have community endorsement / contribution.
According to the Monogamous README, this feature has been included in Electron 0.34.1. Monogamous doesn't serve much purpose anymore.
Remove it from the list?
Looks like Ghost Desktop is gone. Not sure what the state is.
Hey @sindresorhus ! Saw this electron app shared on Twitter by Ubuntu: https://twitter.com/ubuntu/status/996773537770860544
It's called Ao, and it is a client for Microsoft's Wunderlist successor, here is the link to the repo: https://github.com/klauscfhq/ao
Love your awesome list! Happy to contribute in any way!
I miss AKASHA in the list.
I was reading through the applications on your list and noticed that you have Franz under Closed Source. However, Franz is open source on GitHub under the Apache-2.0 License. It should probably be moved over to the open source list.
The link mentioned in the Podcast section is broken and gone.
JavaScript Air: Electron Apps with @jlord and @emorikawa
The broken link shows this page.
This is a great example of an app built with Clojurescript using Electron.
@sindresorhus I'm thinking of building a JSON tree from the contents of README.md. Would you be interested in a PR that makes this repo a require
able npm module that exports that tree?
Hi,
I am planning on creating a desktop app with Vue and Electron. This is some kind of a monitoring application that frequently pulls data from an external API. Naturally, when fetching the data using Axios, I am getting blocked by CORS. I know that disabling the webSecurity
is not ideal but this is the only way I can successfully pull the data.
I am sending the credentials on each request to retrieve the data because JWT authentication has not been implemented yet.
Question: Is it still safe to proceed with the webSecurity
disabled? Very few people would use the app (less than 8) and it would not be distributed to anyone outside of the organization. Also, we only have 1 dedicated account that can pull the data and it is shared to everyone in our team.
Retired or not maintained projects should be probably in deprecated section or removed.
Hi,
please consider adding Trilogy:
trilogy is a Promise-based layer over SQLite, featuring type-casting schema models and allowing both native & pure JavaScript backends ( and in-memory databases ).
https://github.com/citycide/trilogy
@citycide
Isn't an alternative to phantomjs as much as it is an add-on for it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.