WordPress.com Open Sources Desktop App, Linux Version Now Available

Today Automattic announced that the WordPress.com desktop app is now open source and available on GitHub under the GPLv2 (or later). A Linux version joins the OS X and Windows apps that were released at the end of November and early December, making desktop publishing accessible to users on all major operating systems.

The apps provide a beautiful writing and editing experience that mirrors WordPress.com’s new architecture. In addition to publishing, users can browse the Reader, manage sites, customize themes, and view stats.

According to the GitHub repository, the desktop app is an Electron wrapper for Calypso. Electron is what turns the new JavaScript and API-powered WordPress.com into a native app. It is a framework based on Node.js and Chromium that allows developers to build cross-platform desktop applications using JavaScript, HTML and CSS. Electron was originally developed for GitHub’s Atom editor and then open sourced under the MIT license. Microsoft, Facebook, Slack, and Docker all have applications that use Electron.

The WordPress.com desktop app is split between Electron code and Calypso code, with Calypso running as a submodule. If you want to fork it to customize your own app, Automattic’s developers have written detailed instructions for installing and running the application.

The development guide outlines the structure of the app, how it runs, where to make changes when customizing the main app, and how to debug your work. The repository also includes instructions for how to package your released version in a platform-specific way.

In the future the desktop app will become more robust as more admin screens are added to Calypso. This amazing body of work is available for anyone to use or repurpose as your own publishing app trimmed of WordPress.com’s extra features, such as stats, site management, and the Reader. For example, it would be interesting to see a bare bones fork that works with self-hosted sites without having to use Jetpack.