New updates and improvements to ToDesktop

View our roadmap to see what's coming next.

Tue Jul 14 2020
Onboarding Checklist

Improved build infrastructure

Our build infrastructure has now moved to a completely sandboxed environment. We spin up a new Windows, Mac and Linux instance each time you do a build. You can expect:

  • Better uptime — We’re confident that uptime issues related to managing our own build hardware will be a thing of the past.

  • Increased concurrency — Builds won’t be stuck in the queue for 10+ minutes anymore.

  • Stability — Sandboxing ensures that builds are isolated from each other which reduces the potential for unforeseen side-effects.

  • Security — Your code is no longer run in the same instance as other ToDesktop customers.

  • Performance — Right now builds take roughly the same amount of time as before. We will optimise this in the future so you can expect to see reduced build times.

  • Future goodies — We won’t spoil the surprise but this unlocks a whole host of features that we will be announcing over the next few months.

All Windows Code Signing Certificates are now stored on a Hardware Security Module

As part of our ongoing commitment to security we are now storing all Windows Certs on a HSM (Hardware Security Module) using Azure KeyVault. In practical terms, this means that:

  • Your key is protected by a physical hardware device that performs the key decryption.

  • We have a full audit log of each time your code signing key was accessed and used.

  • We no longer store your private key decryption password.

Improved Electron App Onboarding

There’s now automated migration support for onboarding apps using Squirrel.Mac and Squirrel.Windows.

We added and clarified steps related to the Electron app onboarding process. We’ve also created docs for the different migration paths available to you if you’re using Electron Builder, Electron Forge or Electron Webpack.

Finally, new users interested in CLI apps can now pay directly via the web app.

Fixes and improvements

  • todesktop release command: nothing is released until everything is built correctly on all platforms. Before it could happen in some cases that one platform could fail and the others would carry on and release an update.

  • CLI: todesktop <project-path> command removed in favour of todesktop release <project-path>.

  • CLI: improved progress logging when running in CI.

  • CLI: made documentation clearer around the extraContentFiles and extraResources options.

  • Release Build UI Validation.

  • Web: Improved custom domains validation

  • Web: Improved UI of Error textbox

  • Web: improved internal error reporting

  • CLI: throws validation error if main file is excluded by globs passed to appFiles option.

Tue Jul 07 2020
Release This Build

Release an unreleased build

Customers can now release a previously unreleased build. Releasing builds in this way allow for an ideal deployment workflow with the following stages:

  1. Build your app using the `todesktop build` command.

  2. Test this new build of your app.

  3. Once happy, promote that built version to a release, meaning users will now auto-update to it.

Full snap store support

We now have full Snap store support. We even support snaps with custom stage packages.

Settings panel for web-to-desktop app users

Customers who use our web-to-desktop builder can now set up custom domains and configure what platforms their app will be built for.

Improved build infrastructure for web-to-desktop app users

Our build infrastructure now supports concurrent builds so builds should no longer get stuck behind other builds in the queue. Builds are now also fully sandboxed and more reliable.

Fixes and improvements

  • @todesktop/runtime’s types are correctly exported now.

  • Removed support for “productName” in todesktop.json. We made this change because Electron also uses the "productName" if it exists in your app's package.json.

  • CLI: improved UI when one OS fails.

  • CLI: no longer automatically copies to clipboard when a build completes.

  • CLI: tightened up (package.json) author property validation.

  • Web: dropdown menus now work on mobile.

  • Web: Fixed an issue where `window.todesktop.electronVersion` was incorrect.

  • Web: Fixed crash on quit that was occurring for a small number of customers.

  • Fixed error related to sending build completion email

  • Added a lot more tests.

Thu Jun 18 2020

Dedicated Settings Interface

We’re spending a considerable amount of time on making ToDesktop self-service. We now have a customer-facing interface for configuring the following:

  • Custom domains: Serve your desktop application from a domain of your choice.

  • Build platforms: Can now distribute your app through ZIP, RPM, Debian packages and more

  • Certificate management: Upload your mac and windows certificates securely from the UI

Improved Onboarding

To improve the onboarding experience, new Beta customers can now create a CLI app from the web interface. To fit into this new onboarding flow, we’ve published a create-todesktop-app package that allows customers to generate a new Electron app with ToDesktop baked in.

Snap Store Support

As part of a wider push towards app store distribution, we’ve enabled support for Snap Store. This does not include multipass support which is to come.

Custom Electron Support

We now support an electronMirror option in todesktop.json. This is the base URL of the mirror to download Electron from. This may be a mirror geographically closer to you or even your own mirror which contains custom Electron builds. The version downloaded is the Electron version specified in devDependencies in your app's package.json.

Quicker Desktop Builds

To enable faster development builds, the CLI build command now supports disabling code-signing and notarization. E.g. todesktop build . --code-sign=false.

Included in this are safety measures to ensure that unsigned releases never get into production.

Other improvements and fixes:

  • Added appFiles todesktop.json option to specify which files get included in your app. By default, all files in your app path are included in your app, except for node_modules. Dependencies are installed on our build servers as there could be platform-specific postinstall steps. The following are always uploaded if they exist: package.json, package-lock.json, and yarn.lock.

  • Added ID todesktop.json option for specifying which ToDesktop ID to tie to your Electron app.

  • We now support OS-specific icons, meaning you can have a different icon for Windows, Mac and Linux.

  • Added a todesktop whoami command which prints the email of the currently logged-in user.

  • Added a customLogger option to the @todesktop/runtime package. To debug, you can pass a custom logger object. You can pass electron-log (recommended), winston, or another logger with the following interface: { error(), info(), warn() }. Include a debug() method to get even more information.

  • CNAME download reliability improved

  • Fix: preserves file permissions. E.g. if you want to include an extra executable in your app.

  • Fix: Some project configuration was accidentally cached between builds.

  • Better error tracking and reporting across all packages and projects.

Fri Mar 13 2020
Web App 2.0

New Web Interface

To support the CLI, Menubar and Desktop products, we focused on completely re-designing the web interface. This makes it a lot easier to manage all of your apps that are built with ToDesktop.

Fri Mar 06 2020
ToDesktop CLI

ToDesktop Command Line Interface

Launching the ToDesktop CLI is a massive milestone for us. With one simple command your app is published and ready for distribution on Windows, Mac and Linux. Your app is built with native installers, auto-updates, code signing and crash reports baked-in.

There's no infrastructure to set-up, no servers to manage and no configuration needed.

Learn more here: Sign up to be a beta user here:

Sun Feb 16 2020
Menubar Product

New Menubar Product

The Menubar product allows you to deploy your web app in the menubar or tray. This provides a quick way for customers to keep up to date with activity feeds, reports or new content. Your app can even be set to always stay open on top of other windows.

Learn more here:

Browser Navigation

We have added extra APIs and additional documentation around adding browser controls (back, forward, refresh buttons) to to your desktop app.

Learn more here:

Other improvements and fixes:

  • Add ability to open new windows/tabs via keyboard shortcuts: cmd/ctrl + n/ t

  • Added badge icon in builder view to differentiate menubar apps

  • Use additional windows (not tabs) if transparent titlebar enabled

  • Context menu now works for all additional windows

  • Fixed bug related to notifications

  • Fixes around code signing

  • Fixes around internal URLs

Sun Feb 09 2020
Launch App on Startup

Launch App on Startup

This option lets you specify whether your desktop app should launch when a user starts their computer. By default, this is disabled for Desktop apps and enabled for Menubar apps.

Learn more here:

MSI Installer

The MSI installer provides an alternative way to deploy your desktop app to customers. E.g. if you have desktop intranet software, then the preferred way for customers to deploy the desktop app internally may be through MSI group policy instead of Mac, Windows (.exe), or Linux executables.


CNAME auto-updates are now available. If you want to serve auto-updates and download links from your domain instead of the todesktop domain, just let us know what subdomain you want us to use and we can get you set up.

Other improvements and fixes:

  • Added new logo throughout website and web app

  • Add TypeScript UI theming to web app

  • Setup updating of payment methods

  • Code refactored for faster future development

  • Allow user to build app even on timeout

  • Fixed Google OAuth login issue

  • Fixed bug related to setting app badges