I've been trying to figure out my backup strategy at home. My current
set of data I want to keep, critical documents and home photos/movies,
is about 70GB. My current strategy is to keep backups on several
machines at home. I'm trying to avoid using cloud storage. I've been
using unison, which is a
great backup tool. Some of its cool features are:

syncs between two machines, across any OS

tells you what files changed whenever you run it, and lets you
override its default guesses as to which way to copy/delete files

Its only major downside is that it's not actively maintained. However,
it's gone through a lot of testing, and I've been using it reliably for
years, so I think it's a pretty solid app. It has a solid design,
designed so that it never leaves your system in a bad state, even if
interrupted. And it's open source, though it's written in OCaml, not the
most widely-known language.

For a completely different approach, I looked into using a
source-control system as my backup strategy. Specifically, I looked at
using the distributed source control system Mercurial
hg. After doing some testing, here are
the problems I encountered with it:

hg crashes on big files (you need 3x or 5x the RAM for the largest
file you have). However, there is an extension called largefiles
which ships with hg (though it's turned off by default), which can
work around this problem

hg does not preserve modification times of files. There are a few
extensions which can work around this, but I wasn't really happy
with them.

you will need at least double your storage when using hg, since hg
(like all major distributed source control systems) stores a copy of
every file you add to a hidden folder (.hg)

I didn't test git, but it will definitely have
problems #2 and #3 above. Oh well, back to unison for me for the time
being.

P.S. I looked at git-annex as
another approach, because it certainly is aiming at someone like me.
However, its design seemed a little rickety to me -- I believe it
replaces all your files with symlinks, it makes your files read-only by
default (you need to explicitly "checkout" a file to change it) and it
forks git commands under the covers. I think a backup solution needs to
be simple and not have too many dependencies.