Updated Feb 2025
Maintaining a system has always been a pain point, especially on Windows, where getting your OS back up to speed after a fresh reinstall requires manually searching, downloading, installing, and configuring about a hundred apps and individual mods for Windows.
As of the past few years, the maintenance story has changed dramatically on Windows. Windows now has various tools for maintaining and reinstalling a Windows machine that do not require creating customized Windows installer images and using confusing industrial IT tools. This is a huge boon for solo developers and typical users.
If you’re into developing software, as well, I recommend also checking out Microsoft Dev Home, while it still exists. Microsoft is adding new features to help manage virtual environments on Windows, so that your software projects don’t clash with each other, when one Python app requires a library to be version A, while another Python app requires version B. This is a feature I’ve requested via Windows’s Feedback Hub, and, while it has been around, it is not well advertised, and not well integrated into the Windows desktop experience. If you didn’t know about it already, you would never discover it during your normal day to day development operations. Features that are this critical to clean software development practices should be prominently advertised in apps like the Terminal app, and VS Code.
Comparison to Linux
While the ideal system is stable and never needs to be reinstalled, this just isn’t the reality for Windows, so I imagine most users are like me. In my experience, I wind up reinstalling Windows on my desktop every 2 years. Whenever I use another person’s computer, I inevitably find issues with their installation, unless they simply don’t do anything except run a web browser on the computer, and they won the PC component lottery, so their devices are all perfectly engineered, and no drivers cause problems. But this is rarely the case.
Some Linux users might find this funny and say “move to Linux” but I had similar experiences with Linux instability. My first daily driver was Ubuntu, and it had maintenance issues and its GUIs were made for children, so they left out alot of useful features, and ultimately required me to hit the command line to do anything I typically do. The LTS releases of “stable” distros like Debian use prohibitively outdated packages, so you can never install that fun new app you wanted to try, like Zen browser, or, at the time, Chromium based browsers. In particular, I have unhappy memories of Arch Linux breaking itself when I was in college. This was back in 2008 and 2009, when Arch was new and unheard of, before Manjaro was released. I was daily driving Arch Linux on my laptop in college, as a challenge, and this experience ended the experiment for me. Various issues, including WiFi problems and battery consumption problems ultimately caused me to return to Windows.
Linux allows users to mass install apps by providing a long list of package names to their package manager command line app, like apt
or pacman
, so you can quickly bring your distro back up to speed, assuming no problems or conflicts occur. For example
pacman -Syu firefox, vscode, gcc, make
Modern Windows Process
Windows has three new tools that change the game:
- App Store
- Winget
- UniGetUI
App Store
The App Store isn’t super new, but it has grown a lot in terms of the amount of common software packages offered on it. Initially, it had a large collection of low quality apps with ads in them that made the store feel more like a gimmick. Today, it still has those kinds of apps, but it also has most of the daily apps people use, excluding a few prominent apps like Gmail that you’d expect to have transitioned their presence to PC in the same format that they have on smartphones. The App Store makes maintenance easy because it can automatically update its apps for you.
Winget
Winget ships with Windows. Winget lets you install apps via the command line. Not all apps are available this way, but it dramatically simplifies the installation process for many popular apps. It can handle individual installs from the command line, or batch installs using the import feature. Winget is a package manager, similar to pacman
and apt
on Linux.
You can read how to use Winget in my How to use Winget article.
UniGetUI
UniGetUI is a graphical front-end for the Winget command line app. Before reinstalling Windows, make sure to use Winget or UniGetUI to export your apps list. It is reported that Winget is aware of all apps installed on your system, whether you used Winget to install it or not, as long as Winget has it in its online database. After installing a new copy of Windows, you should install this app first. You can do so with winget:
winget install unigetui
For any apps that are not listed on the Windows App Store, this is a great 1-stop shop to reinstall 99% of your Windows system, unattended.

You can import your apps list from a previous Windows installation, if you exported it using UniGetUI or possibly winget export
.
In order to export your apps from UniGetUI, go to the Installed Packages page, select all of your packages, click the “Add selection to bundle” button, then go to the Package Bundles page, and click “Save bundle as”. You will receive a .ubundle file.


Leave a Smart Comment