UpgradeLink – An Open-Source All-in-One Cross-Platform App Upgrade System
by toolsetlink | 2026-01-12 08:06:30+00:00
Hey fellow devs!

As a developer who’s been building cross-platform apps for years, I’ve been *frustrated to no end* by app upgrades over the past six months:
- For the Tauri app I built at work, I had to maintain three separate upgrade logic flows for Windows/Mac/Linux – changing one line of code meant testing it three times;
- For the small Electron tool I made earlier, I relied on handwritten scripts for everything: upgrade package distribution, version comparison, canary releases… troubleshooting issues took hours;
- I tried a few third-party upgrade services – either they were overpriced, only supported single platforms, or I didn’t trust handing over my user data;
- I looked for open-source full-stack upgrade solutions, but they were either feature-incomplete or so complex to deploy that writing my own code felt easier…

My core goal with this project is simple: to save developers from reinventing the wheel for app upgrades. One system to handle version iteration across all platforms.

Why I Built UpgradeLink
Let me start with my core requirements – I wanted an upgrade system that’s *full-platform compatible, easy to deploy, and customizable* – but nothing on the market fit the needs of small teams or individual developers. So I built the foundation on Go Zero + simple-admin, and added these design choices based on my own hard-learned lessons:

Core Features I Built Into UpgradeLink (All Born From Pain Points)
1. Full Platform Coverage – One System for All Ends
This was my top priority – I never wanted to write separate upgrade logic for Windows vs. Mac again. So UpgradeLink natively supports:
- Native apps for Windows/macOS/Linux;
- Cross-framework apps (Tauri/Electron) – compatible with their official upgrade APIs, so integration requires almost zero code changes;
- Android apps (with delta updates to save bandwidth and speed up upgrades).

I tested it myself: integrating it into my Tauri tool took just 10 minutes – way faster than writing custom scripts.

2. "Flexible Configuration" Features (Added After Countless Headaches)
With handwritten upgrade scripts, my biggest pain was *lack of granular control*. So I added these to UpgradeLink:
- Canary releases: Roll out new versions to 10% of users first, then full rollout if no issues;
- Targeted upgrades: Push upgrade packages to specific devices/OS versions (e.g., only Mac 14+ users);
- Custom storage: Supports S3-compatible object storage – I use Alibaba Cloud OSS for my upgrade packages, and you can also connect CDNs for faster downloads;
- Config/file upgrades: Beyond app binaries, my tool’s asset packs and JSON configs can be updated dynamically (no need to release a full app version).

3. Quality-of-Life Details I Added for "Peace of Mind"
As an indie developer, I don’t have time to maintain complex deployment workflows – so:
- Docker single-machine quick start: I run it on my own server with just one command;
- Multi-language SDKs (Go/Java/Python/TS, etc.): I use the SDK directly for integration – no need to write raw HTTP requests;
- Vue3 + Vben Admin admin panel: Intuitive UI for managing upgrades (no more digging through logs to check status).

My Personal Quick Start Flow (Tested & Working)
I’ve put the full deployment docs in the repo README – including Docker Compose and cluster deployment options, all validated by me personally.

A Little Personal Note About This Project
I didn’t build this to create a "bloated, all-encompassing framework" – purely to solve a pain point for myself and fellow developers. After all, we want to focus on building our apps, not spending 90% of our time setting up upgrade services.

Let’s Improve It Together
GitHub Repo: https://github.com/toolsetlink/upgradelink

Let’s make app upgrades easier together!