<p dir="auto">With electron getting more popular, there's an issue when user installs several apps using electron - each application will have same duplicate codebase, except actual app part.<br>
I'd like to suggest to find a solution to this issue. E.g. provide electron core as separate library, so multiple apps could use it without eating a lot of disk space.</p>
<p dir="auto">Currently developers using atom-shell have to ship the whole atom-shell binaries when distributing their apps, but since now we have <a href="https://github.com/atom/asar">asar</a> as atom-shell's app format, we may add runtime mode to atom-shell like <a href="http://www.adobe.com/products/air.html" rel="nofollow">Adobe Air</a> or <a href="https://developers.google.com/chrome/apps/docs/developers_guide" rel="nofollow">Chrome Hosted Apps</a> that developers only need to distribute packaged app in <code class="notranslate">asar</code> format as long as end users have the runtime mode of atom-shell installed.</p>
<p dir="auto">The runtime mode can just be another app based on atom-shell (let's call it <code class="notranslate">atom-runtime</code> for now), and has deep platform integrations:</p>
<ul dir="auto">
<li>On Windows, we can provide installer and auto updater for atom-runtime, and register the <code class="notranslate">.asar</code> file type to be opened with it.</li>
<li>On Linux, we provide official software sources of atom-runtime for some popular distributions, and also register atom-runtime as handler of <code class="notranslate">.asar</code> files.</li>
<li>On Mac, we need to provide a tool to help users package their apps into Mac bundles. We can reference how Steam created bundles for downloaded games, or how Parallel created bundles for applications in hosted OS.</li>
</ul>
<p dir="auto">We can even provide a tool or service to help generating installers for developers' apps which can automatically download atom-runtime if it is not installed on user's machine, just like many .NET applications.</p>