I'm not sure if I will keep this up for the whole of advent (good luck @neil ), but if there's one piece of Free Software I want to highlight, it's vim.
I learned vim because it was the default vi implementation in RedHat Linux 5.x back in the distant past and vi is required by POSIX and so was installed everywhere (except Windows, where nothing useful is in the default install, but it is easy to add). I mostly use gVim early on, but once I was fairly comfortable with it, I started using it in the terminal.
And it's great to be able to use the same editor whether I'm local, on via SSH on a remote Linux or *BSD machine. I tried using VS Code's remote mode, but it's Linux only, and only fairly mainstream Linux even there. Want to connect to a RISC-V Linux? Sorry. Alpine on x86-64? If you jump through some hoops. CheriBSD on Morello? Or even OpenBSD on x86-64? No chance. Vim? All of those. And even things like Amiga, VMS, or QNX. Or iPad, or Android, or Haiku (the BeOS port seems to have died, but I haven't run BeOS for around 20 years).
I have written a few hundred lines of code, over a hundred and fifty articles, five books, two dissertations, and a couple of dozen papers in it. Most on a laptop, a bit on a desktop, and a surprising amount on a Nokia 770 with a folding Bluetooth keyboard (great for writing in a cafe by the sea).
When I started, the main benefit of vim over vi was multi-level undo. Since then, it's gained plugins for LSP support (so I even get nice error messages and autocompletion with our custom version of clangd with all of the CHERIoT extensions!), spell checking, and unlimited persistent undo. The last of which is the reason I don't use NeoVim (they didn't consider breaking the on-disk format for persistent undo a problem, I consider data loss very bad, and so don't trust them with my data).
At this point, my fingers are so trained to use vim shortcuts that I end up with :w scattered in the middle of random documents if I wrote them in anything else.