Simplenote for Electron: building the Windows and Linux desktop client from source
Simplenote for Web, Windows, and Linux
At a glance
- What is it?
- The official Simplenote desktop app for Windows and Linux is a React client wrapped in Electron and synced through Simperium. The code is public and GPL-2.0, but the README warns that local development now needs an existing account, which changes who can realistically build it.
- Who is it for?
- Adopt simplenote-electron if you want the official Simplenote desktop client on Windows or Linux, or if you need to read and modify a GPL-2.0 Electron codebase that syncs through Simperium. Do not adopt it if you want a self-hosted notes server, a headless API client, or an easy first contribution to an open source project: the README states that local development is not supported without an existing account on the test server or production credentials.
- Can I use it commercially?
- Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 9 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What simplenote-electron is, and who the repository is actually for
This repository is the official Simplenote desktop application for Windows and Linux, according to the README. The code is a React client packaged in Electron, and package.json names the product Simplenote with the entry point desktop/index.js. The same README points macOS, iOS and Android users to separate repositories, so this is not the client for every platform.
The problem it solves is narrow and concrete: Simplenote's own service stores notes and syncs them across devices, and this repository is how that service reaches Windows and Linux as a native-feeling desktop window rather than a browser tab. The homepage field in package.json points at simplenote.com, and the description in package.json says notes stay in sync with all your devices for free.
Who it is for is the part most people get wrong. The README opens with a warning that local development is not supported without an existing account on the test server or access to production credentials, because the email-first signup flow made it impossible to create accounts in the test database. So the repository serves two audiences: people who want to inspect or modify the desktop client, and people who want to build a package for distribution. It is not a friendly starting point for someone who just wants to run a notes app from source.
How the Electron client, React UI and Simperium sync fit together
The dependency list in the README names three layers. node-simperium handles syncing, ReactJS builds the interface, and Electron wraps the JavaScript application so it runs as a desktop program. The repository layout matches that split: lib/ and scss/ hold application code and styles, desktop/ holds the Electron entry point referenced by package.json, and webpack.config.js drives bundling.
Data flow follows the same shape. The rendered UI talks to the Simperium client, which talks to Simplenote's servers; Electron supplies the window and the desktop integration. The Makefile exposes the knobs for that pipeline: NODE_ENV defaults to production, HOST defaults to 0.0.0.0, PORT defaults to 4000, and DEV_SERVER defaults to false. A comment in the Makefile states that changes to HOST and PORT are not yet reflected in desktop/app.js, which is a real inconsistency worth knowing before you try to serve the app somewhere unusual.
The build and release machinery is heavier than the app itself. There is a Buildkite directory, electron-builder.json plus an AppX variant, a fastlane directory, and a Makefile that computes whether to publish based on whether BUILDKITE_TAG is set. That is the footprint of a project shipped by a company to real users, not a weekend Electron wrapper. If you want a small reference implementation of an Electron notes app, this is more machinery than you need.
Installing and running simplenote-electron from source
The README gives an explicit sequence. Clone the repository first, then install dependencies with the legacy peer dependency flag, because react-monaco-editor is pinned to a specific monaco-editor dependency and npm treats minor versions as breaking for sub-1.0.0 packages.
git clone https://github.com/Automattic/simplenote-electron.git
cd simplenote-electron
npm install --legacy-peer-depsBefore the dev server will start, the README says to decrypt the config file with make decrypt_conf. The Makefile confirms the paths involved: the encrypted file lives at ./resources/secrets/config.json.enc and decrypts to ./config-local.json. You need whatever key that step expects, and the README does not describe how to obtain it.
make decrypt_conf
npm run devAccording to the README, the dev server then starts on http://localhost:4000 and the Electron app launches automatically. If you want console.log output from the Electron process to appear in your terminal, the README suggests setting ELECTRON_ENABLE_LOGGING=1. Two warnings apply here: the README states that Simplenote API features such as sharing and publishing do not work in development builds, and that installation paths used for a build cannot contain spaces because of a make limitation. Unit tests run through npm test, which the package.json scripts forward to make test.
Packaging for Windows and Linux, and the rpm requirement
Distribution is handled by three Makefile targets that the README lists: make package-osx, make package-win32 and make package-linux. The dependency section adds a specific constraint for Linux: rpm must be installed in order to build Linux packages, with brew install rpm given as the macOS route to get it. That is a small detail with outsized consequences if your build machine is minimal.
Version metadata is centralized. package.json declares version 2.27.1 and the repository's recent releases include v2.27.1 and v2.27.0 from 2026-07-01, plus a v2.27.2-md-editor-wysiwyg.1 tag from 2026-07-03 whose name suggests an experimental markdown editor branch rather than a normal release. The Makefile reads ELECTRON_VERSION directly from package.json devDependencies, so bumping Electron means editing that file, not the build script.
Publishing is gated by environment. The Makefile defaults PUBLISH to never, and switches it to always only when BUILDKITE_TAG is non-empty, with a comment explaining that electron-builder does not recognize Buildkite as a provider. If you fork this and run your own builds, you inherit that logic and should expect to override it deliberately rather than by accident.
Where simplenote-electron is the wrong tool
The clearest limitation is stated by the project itself: local development is currently not supported without an existing account on the test server or production credentials. The README frames this as a consequence of the email-first signup flow and says the team hopes to support an open-source development workflow again in the future. Until that changes, anyone evaluating this repository as a way to learn Electron or React will hit a wall before writing a line of code.
A second boundary is scope. This client syncs to Simplenote's service; the README does not describe a self-hosted server, and the sync layer is node-simperium talking to that service. If your requirement is that notes never leave infrastructure you control, this desktop client is not the component that decides that.
A third is platform. The README explicitly directs macOS, iOS and Android users to other repositories, so simplenote-electron is not a universal client despite the Simplenote name. And the docker-compose.yml in the repository pins node:8.16.1 for both the install and dev services, which is far older than the engines field in package.json (node >= 12.14.1). That container definition looks stale relative to the current package metadata, so treating it as a supported development environment is a mistake.
Simplenote alternative: how a local-first notes app differs
The obvious alternative category is a local-first notes application that stores plain files on disk and syncs them through a folder you already control, rather than through a hosted service with an account. The architectural difference matters more than any feature list: in that model the application reads and writes your filesystem directly, and sync is whatever file-sync tool you already run. In simplenote-electron, the Simperium client is the source of truth for sync, and the README's note that sharing and publishing do not work in development builds shows how much of the product lives server-side.
A second alternative is simply using Simplenote in a browser at app.simplenote.com, which the repository's homepage field points to. That path skips the install, the decrypt step, and the credentials problem entirely. If you do not specifically need a desktop window, a system tray presence, or an offline-capable Electron shell, the web client removes the entire build story.
A third is a general-purpose editor or note-taking tool that you extend yourself. That trades the Simplenote service's cross-device sync for full control over storage. Which one is right depends on whether you value the sync service or the data format more; simplenote-electron only makes sense if you want the former and are willing to accept the account requirement.
Licence, maintenance and what an upgrade actually costs
The licence is GPL-2.0, declared in both package.json and the repository's LICENSE.md. For anyone embedding or redistributing this code, that is a copyleft licence, and the practical consequence is that derivative distributions carry source obligations. This is a description of what the licence identifier means, not legal advice; if you plan to ship a modified build, get your own counsel.
The repository is not archived, and the last push was on 2026-09-21, two days before this writing. Recent release tags cluster in early July 2026. So the project is receiving commits, but note that the README's own warning about the broken development workflow has not been resolved by that activity.
Upgrade cost concentrates in three places. Electron version is read from package.json, so an Electron bump is a single-file change that ripples through packaging. The npm install --legacy-peer-deps requirement is a standing tax: it exists because of a pinned sub-1.0.0 dependency, and it will persist until that pin moves. And the encrypted config file at ./resources/secrets/config.json.enc means every fresh clone needs the decrypt step before the app will start. None of these are large, but together they mean a contributor cannot go from clone to running app without outside information.
Editorial conclusion
Adopt simplenote-electron if you want the official Simplenote desktop client on Windows or Linux, or if you need to read and modify a GPL-2.0 Electron codebase that syncs through Simperium. Do not adopt it if you want a self-hosted notes server, a headless API client, or an easy first contribution to an open source project: the README states that local development is not supported without an existing account on the test server or production credentials. Before building, verify that you have those credentials, that your checkout path contains no spaces (the README notes a make limitation), and that rpm is installed if you intend to run make package-linux. If you only want the app, take the packaged download instead of the repository.
Frequently asked questions
Is Simplenote any good?
That depends on what you need. The README describes this repository as the official Simplenote desktop app for Windows and Linux, and package.json states that notes stay in sync with all your devices for free. The project also warns that local development is not supported without an existing account, which says more about the codebase's contributor experience than about the app itself.
How much does Simplenote cost?
The package.json description says notes stay in sync with all your devices for free. The repository itself is GPL-2.0 licensed and does not document any paid tier.
Is Simplenote better than Evernote?
The repository does not compare itself to Evernote, so there is no basis here for that judgement. What the README does state is that Simplenote API features such as sharing and publishing do not work in development builds, which is a relevant limitation if you rely on those features.
What is Simplenote used for?
According to package.json, it is an easy way to keep notes, lists and ideas, with notes syncing across all your devices. This repository is specifically the Windows and Linux desktop client, built as a React app packaged in Electron.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/automattic-simplenote-electron)