lbry-desktop: an Electron wallet and browser for a blockchain marketplace
A browser and wallet for LBRY, the decentralized, user-controlled content marketplace.
At a glance
- What is it?
- The desktop client for the LBRY protocol, wrapping the lbry daemon in Electron and React, where the interesting engineering is in the bundling and in a build that has outlasted its last release.
- Who is it for?
- The most honest way to read this repository is as a complete, well-organised Electron application whose distribution stopped moving while its source did. The build setup is current, the daemon download happens at install time, and the UI is a normal React codebase.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 21 days ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A daemon with a UI attached, not an alternative client
The README states the architecture in one sentence and it is the sentence that decides everything else. This repository contains the UI code that powers the official LBRY desktop app. The app is a graphical browser for the decentralized content marketplace provided by the LBRY protocol, and it is essentially the lbry daemon bundled with a UI using Electron.
Essential is the operative word. There is no alternative consensus implementation here, no partial mode, and no lighter client. The daemon that validates blocks and serves content is the same one you would run from a terminal, and this project packages it and puts a React interface on top. That is why the postinstall script in package.json runs a script called downloadDaemon, and why the build process has more in it than a webpack run.
The project description calls it a browser and wallet for LBRY, a decentralized, user-controlled content marketplace, and the topics list blockchain, electron, javascript, react and ui. The repository language is JavaScript rather than TypeScript, and the tree confirms a Flow-based setup with .flowconfig and a flow-typed directory alongside .eslintrc and .prettierrc.json.
The runtime tooling is also visible in the tree: babel.config.js for transpilation, postcss.config.js for styles, webpack.base.config.js and webpack.electron.config.js splitting the main process from the renderer, and electron-builder.json for packaging. The presence of electron-specific config alongside the UI code is the standard Electron two-process arrangement, where a privileged main process and a sandboxed renderer share this repository.
Installers for three platforms, plus four community channels
The install table is a simple matrix. Windows, macOS and Debian-based Linux each have a stable installer and a pre-release installer, with links for lbry.exe, lbry.dmg and lbry.deb respectively. macOS support begins at version 10.12.4, Sierra.
The Debian caveat is spelled out for people who hit it: if the deb fails to install through the Ubuntu Software Center, install it manually with sudo dpkg -i <path to deb>, and run sudo apt-get install -f afterwards if this is a first-time install, because dependencies will be missing.
Beyond the official three, the README lists community-maintained builds for Arch Linux and Flatpak, plus Nixpkgs and an ARM build guide. It attaches an important caveat to those: they will need to be updated manually, because the in-app update process only supports Debian installs at this time. It also notes that if you arrive from a deb install the directory structure is different and you will need to migrate your data.
The maintainers are credited individually in that table, which is unusual in a README and useful. The Arch package lists RubenKelevra, Nixpkgs lists Enderger, and the ARM build guide is credited to @Madiator2011. The Flatpak entry has no maintainer listed.
Running from source needs Node 16, Corepack and Yarn
The prerequisites are listed as Git, Node.js with version 16 required, Corepack and Yarn. The Corepack line is worth noting because it explains a detail in the tree: there is a .yarn directory and a .yarnrc.yml, which are Yarn Berry artefacts, alongside a yarn.lock.
The sequence is clone, change directory, enable corepack if it is not already, then run yarn to install dependencies. The sudo on the corepack step is called out as necessary for system-wide installation, with a note that inside a container or under nvm you may not need it.
Running the app in development is a single command, `yarn dev`, which resolves through dev to dev:electron, and that script runs a script called electron/devServer.js with NODE_ENV set to development. Building for production is yarn build, which runs the electron webpack configuration and then electron-builder, producing an executable in the dist folder.
There is also a reset procedure worth knowing about, because Electron builds fail in unhelpful ways. If the app will not build or yarn subcommands are misbehaving, the README suggests removing node_modules and reinstalling, with a separate Windows form using del /s /q node_modules && yarn. The last resort is a git reset --hard, git clean -fxd and git pull -r combination, offered with the hedge that you really have to think something has gone wrong first.
The scripts in package.json add detail the README does not. The analyze script runs source-map-explorer against the bundled output to produce a source map report, which tells you the bundle is large enough to be worth investigating. The lint script runs ESLint over both the ui and electron directories and then flow, so type checking and linting are one command. The postinstall step runs electron-builder install-app-deps and then the daemon download, and there is a postinstall:warning script that fires when NODE_ENV is set to production, because that would skip dev dependencies.
The last release is from 2023 while the branch still moves
The releases list ends at v0.53.9, published on 2023-02-14. The two before it are v0.53.8 from November 2022 and v0.53.8-alpha.1 from the day before that. The version field in package.json is also 0.53.9, which means the working tree has not moved past the last published release in either version number or history.
Meanwhile GitHub reports the default branch as last pushed on 2026-09-19, comfortably inside a 183-day window, with 3,516 stars, 409 forks and 618 open issues. Those two facts sit side by side without explanation: commits are landing, the version string is unchanged, and no release has been cut.
The consequence is specific. The in-app updater that the install table tells Debian users to rely on has no newer release to point at. Anyone installing today gets v0.53.9 and will not be moved forward by the application itself.
The v0.53.9 release body is a single line: updated lbrynet to 0.113.0. That is the pattern for this application, a thin version bump when the underlying daemon moves. The v0.53.8 notes are more typical, fixing a crash when selecting a large file in publish, fixing an error when unfollowing unpublished channels, and updating Xcode to 13.1 with a described fix for the release process.
Worth noting as a sign of the project's age: the README still displays a Travis CI build badge, and the tree contains both .travis-era configuration and a .github directory. The project has been around long enough for its CI story to have moved on without the README following.
Two homepages, two minimums and a badge that does not match
Small inconsistencies like this are worth recording, because they are the kind of thing that costs an afternoon if you find them later rather than now.
GitHub gives the homepage as https://lbry.tech. The homepage field inside package.json lists https://lbry.com/, and every installer link in the README points at lbry.com as well. So the canonical site appears to be lbry.com and that repository field points somewhere else.
The macOS minimum is stated as version 10.12.4, Sierra. Sierra shipped in 2016, which is a compatibility floor set years ago and probably not revisited, rather than a statement about what the app currently needs.
The dependency badge is the one that would actually mislead someone. The README displays an image with alt text reading npm, sourced from shields.io, and it is wrapped in an anchor whose title attribute reads MIT licensed. So the badge appears to be a license badge whose image is named after a different badge type. The actual license is MIT, stated in both the package.json license field and the LICENSE file in the tree root, so there is no real ambiguity about the terms. Only the badge rendering is odd.
The README also carries two badges from a site called forthebadge, one reading 60-percent-of-the-time-works-every-time and one reading approved-by-veridian-dynamics. They are jokes. They are also a fairly accurate summary of the project's posture, which is informal by design.
What a reader should take from this repository
If you want to understand how an Electron application that talks to a blockchain daemon is put together, this is a good specimen. The separation between the main process and the renderer is explicit in the webpack configuration, the daemon is fetched at install time rather than vendored, type checking runs through Flow with a flow-typed directory for library definitions, and the build produces distributable packages with electron-builder.
If you want a working LBRY wallet today, the question to answer first is not about this repository's quality but about the state of the protocol, and the release history here is part of that answer rather than a detail about it.
The tree also shows a project that expects to be translated and configured by other people. There is a .tx directory, which is the configuration for the Transifex translation platform, and a homepages directory alongside extras and static directories. The .env.defaults file means runtime configuration is expected to come from environment variables rather than being compiled in, which is the right approach for an application that talks to a daemon on localhost and may be pointed at a different network.
For anyone contributing, the README's request is to open an issue or discussion first for larger changes so the approach can be aligned, keep pull requests focused, and update documentation and tests when behaviour changes. CONTRIBUTING.md is linked for detail, and SECURITY.md is linked for responsible disclosure.
Editorial conclusion
The most honest way to read this repository is as a complete, well-organised Electron application whose distribution stopped moving while its source did. The build setup is current, the daemon download happens at install time, and the UI is a normal React codebase. What a reader has to weigh is that the last published release is v0.53.9 from February 2023 even though the default branch is still receiving commits, which means the in-app updater has nothing newer to offer. If you need a maintained client, check the current state of the protocol before committing to this one.
Frequently asked questions
How does LBRY work?
LBRY is a protocol that provides a decentralized content marketplace, and the desktop app is a browser and wallet for that marketplace rather than an independent implementation. This repository holds the Electron and React interface; the lbry daemon bundled with it does the actual protocol work, and the postinstall step downloads that daemon.
How do I build lbry-desktop from source?
Install Git, Node.js version 16, Corepack and Yarn, clone the repository, enable corepack if needed, then run yarn to install dependencies. Use yarn dev for development and yarn build for a production build, which produces an executable in the dist folder using electron-builder.
Which platforms have official installers?
Windows, macOS from version 10.12.4 Sierra, and Debian-based Linux, each with stable and pre-release downloads. Flatpak, Arch, Nixpkgs and ARM builds exist as community-maintained options, but the README notes that only Debian installs are supported by the in-app updater.
What is the latest release of lbry-desktop?
v0.53.9, published on 2023-02-14, and the version field in package.json is still 0.53.9. Commits continue to land on the default branch, so the source is moving while the published version is not, and the in-app updater has nothing newer to offer.
What license is lbry-desktop released under?
MIT, stated in the license field of package.json and in the LICENSE file at the repository root. The badge in the README renders oddly, showing npm in its alt text inside an anchor titled MIT licensed, so read the LICENSE file rather than trusting the badge.
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/lbryio-lbry-desktop)