the beginnings
unbalanced is one of my favorite open source projects.
It used to look like this:
This was my first app to be exposed to a wide general audience and itās still going strong.
I started developing it in 2014, as a consequence of using Unraid as my NAS.
I needed a way to move files around, and the only way to do it was via the command line.
I wanted something more visual and with more āintelligenceā, so I created a web app that allowed me to do that.
unraid
Iāve been using Unraid for even longer than that. I purchased my first license in 2010, when I discovered its capabilities.
Unraid is a local storage solution.
It allows you to set up a server with a bunch of disks, and it provides a web interface to manage it.
I had toyed with Solaris and ZFS before, but I didnāt like the idea of having to buy all the drives at once (because of vdevs, i think this has changed or will change).
Unraid, on the other hand, allows you to add different sized drives as needed, over time.
Why would you need local storage, in these days of cloud computing, streaming, and all that?
Well, you donāt really own the media when youāre subscribed to some provider, youāre just renting it.
For instance, if you
- watch movies on Netflix, you donāt own them and Netflix can and has removed them all the time
- listen to music on Spotify, you donāt own it and they can and do remove it all the time
- and so on ā¦
With Unraid, you own your media, and you can access it whenever you want.
Also, accidents may happen.
Look at what happened with Google Drive recently or the data breaches on Apple iCloud in the past.
It always important to have redundant copies of your data, and Unraid is a great way to do that.
Thereās a lot of information about Unraid out there, in addition to the main site, I suggest you look at the blog, the forums and the Spaceinvader One YouTube channel.
the essence
At its core, unbalanced is a graphical user interface on top of rsync.
It asks the user for some parameters, applies some algorithms to calculate disk allocations, then it builds an rsync command for execution.
It monitors the rsync process, in order to show the overall progress to the user.
This last part is really unique, I havenāt seen any other tool that does this the way unbalanced does.
the anniversary
I wrote the app in 2014 and didnāt make any big conceptual changes since then.
It was the first app I wrote in Go and React, so it was a bit rough around the edges, especially in terms of the UX (user experience).
Itās also true that I built it for my specific needs, it did what I needed, although it showed some quirks for other users š.
Approaching its 10th anniversary, I finally had some time to work on it, so I decided to rewrite the UI from scratch, using modern best practices (Iāll write a separate technical post about this).
Iām really proud of how it turned out, itās a lot more polished, a lot more usable and a lot more beautiful (dark theme š!).
the plugs
Winding down the post, Iāll plug a few things:
- Unraid: if you donāt use it yet, consider doing it
- unbalanced: if you need to move data around in Unraid, give it a try (also consider sponsoring it)
- ControlR: if you use Unraid, consider purchasing this mobile app, which provides you an easy interface to manage your server
the end
Thanks for reading a bit of history about one of my favorite apps !