I started running decoded.legal - a small English law firm, focussing on Internet, telecoms, and tech law - on Free software, both client and server side, around five years ago. I have used Free software in my personal life for a lot longer than that.
Back in 2022, I wrote about my experiences after the first year or so.
I wrote an update in 2024.
Someone asked me recently what I am doing now, and, while it is mostly the same, some bits have changed. So here is the 2026 update.
Client-side stuff
I am still using Debian, with GNOME, and it works well for me.
I’m using it on a ThinkPad X1 Yoga Gen 6, as my primary machine, and, being a “Yoga” version, I rather like being able to fold the screen back and write on it to mark up documents. (Here are my thoughts on the different “Active Pens” available for it.)
However, the machine itself seems to have a hardware problem with the Thunderbolt / USB-C ports (fine for power, very flaky for data), and so I might need to replace it. And I have no idea what laptop I might get.
Email (MUA): Thunderbird and mutt, depending on what I am doing
- Quick Folder Move and Move Message And Yourself are particularly useful add-ons for Thunderbird, for rapid filing of email with keyboard shortcuts
- Thunderbird seems to be having a problem with some recurring
calendar invitations, while
ikhalis handling them fine. I’ve not dug into it, but it is a nuisance.
Document production: LibreOffice’s Writer if I want a “Word” document (e.g. I am exchanging documents with other lawyers), and I am using
pandocandtypstto convert Markdown files that I tend to write in vim for some other bits. I’d like to exploretexat some point, as I have a client who likes diffs to their .tex files, and that looks rather neat.Presentations: reveal.js
File manager: Nautilus
PDFs: evince for most reading; Xournal++ for marking up PDFs; PDFarranger and pdftk for interfering with PDFs
Text expansion: espanso
- This is a fantastic shortcut for me, saving me from typing the same thing multiple times. I have loads of shortcuts set up, and I’d be lost without them.
Browser: Firefox or links
- I am still using Firefox. It is … fine? I should probably look at LibreWolf or another fork, as I’m not enamoured by Mozilla’s direction of travel but, for now, Firefox it is.
- I use Firefox for joining people’s Teams and Zoom etc. meetings, if someone else sets up the meeting, and that works fine
Local wiki / knowledge management: vimwiki
- because I use vim so much,
vimwikiwas quite an obvious choice. - I use this for keeping track of my professional development, and for various notes
- because I use vim so much,
Disk encryption: LUKS
Client-side encryption of files before syncing them with Syncthing: Cryptomator
Fediverse: I tend to use the Mastodon advanced web UI or, when I want fewer images, the TUI toot.
Password manager: Bitwarden, using the
vaultwardenserver, with YubiKeys for managing more sensitive credentialsMarkdown editor (for blogposts; I do presentations in vim or gedit): Apostrophe
Scanning: paperless-ngx
Label printing: there’s a great FOSS web UI for Brother (and perhaps other) label printers. I don’t print many labels, as we aim to be paperless, but it’s convenient when I need to do so
Why so many terminal-based tools? The simple answer is that I am very
comfortable in a terminal, and I like them. They have fewer distractions
and, when compared with most GUI software, are just - IMHO - easier to
use, especially when I don’t need to move my hands away from the
keyboard. So, while I don’t use them exclusively, I use
mutt, vim, ikhal,
ncmpcpp, newsboat, toot,
links, and various other TUIs, frequently.
Server-side stuff
Everything here - other than Signal - is self-hosted, and I’m mostly using Intel NUCs now. I still have some Raspberry Pi devices, but fewer than I did.
(Again, this doesn’t list everything; just the main applications.)
Email (MTA): postfix / dovecot
- I need to move our mail infrastructure at some point, and I want to look at Stalwart.
File synchronisation: Syncthing
- One of the bigger changes since last time was moving away from Nextcloud. I just was not getting on with it, and it was causing me more problems than it solved. So I switched to Syncthing for file sync, and radicale for CalDAV / CardDAV. I’ve been more than happy with this combination.
Video conferencing: Signal
- I ran jitsi for years, but stopped using it a few months back. Jitsi is great, and I remain a fan, but most of the time I am joining other people’s Teams or Zoom meetings, so I was running the Jitsi server for very little usage. I turned it off, and instead offer Signal. I have had no grumbles.
Invoicing and tracking payments: InvoicePlane, just for generating PDF invoices. Clients don’t interact with it
Time tracking: Kimai
- v2 of Kimai is excellent, and I had a very pleasant exchange with the developer, which is always nice.
“Case management” / “Matter management”: EspoCRM
VPN: WireGuard, using trailofbit’s algo ansible scripts on one machine, and PiVPN on another (albeit not on a Pi)
Vulnerability scanning: greenbone/OpenVAS
Monitoring: Uptime Kuma
- I implemented this not long after the last update. It … just works?
Forge / hosted git repository: Forgejo
- I use this for version tracking the website, and for a couple of template projects
- I do not host anything particularly important on it - for that, I have a git process running on another machine, which is not accessible over the Internet, and I just push to that
SIEM: Wazuh
Password manager: vaultwarden
Website: it is a static site built via mkdocs, hosted on apache2
- It got even simpler and even faster to load. Yes, it’s basic, but I like it!
- We still have an .onion version. If you visit decoded.legal in Tor Browser, it should re-direct your automatically
Blog: BSSG
- After a couple of annoyances with hugo, I moved to BSSG - a bash static site generator. The developer, Stefano, is amazing, and it is working incredibly well. I’ve gone for a very basic, easy to read, theme - which should be very similar to what was there before - and there’s still an RSS feed for it, of course
- I blog quite frequently, and, rather than keep private / internal “knowhow” files, I tend to just blog things and share the learnings
- I tend to use my personal blog for posts about the more technical bits and pieces
- I have automated the most common actions - templates, and publishing - using bash scripts, so that I can focus on writing (in Markdown); getting it online is the easiest bit
Fediverse: I am using the *glitch-soc Mastodon** fork
- Switching from normal Mastodon to glitch-soc Mastodon was easy
- I stopped using Markdown in toots, even though I like the rendered output (i.e. as html not as markdown), but this is not supported consistently well across clients, so I stopped using it.
- I turned off decoded.legal’s own fedi instance. I had been on the fence as to whether this is worthwhile or not for a while, and decided that, really, it was not.
Knowledge management, and managing our law firm’s (numerous) policies and procedures: dokuwiki with the Markdown plugin
DNS: unbound, with Pi-Hole in front of it
- I used to run a doh server, but I’ve stopped doing that.
Backups: restic and rsync
Forms: LiberaForms
- I have been really happy with LiberaForms, for easy-to-create and easy-to-use forms, especially since they implemented encryption, so that the form responses are stored encrypted on the server. I still delete them as soon as I can, but knowing that they are encrypted in the database is welcome.
- I use LiberaForms for our “Know Your Client” pre-engagement questionnaire, and for various other bits
Collaborative document editing: I don’t.
- I used to run CryptPad, but it just didn’t get much use, so I turned it off.
Mobile device
I’m using a Pixel running GrapheneOS for my mobile device.
I use F-Droid as the main app store.
Using Android doesn’t thrill me, especially given Google’s direction of travel, but at the moment - despite trying quite a lot of different OSs and devices, including postmarketOS and Ubuntu Touch, as well as SailfishOS previously - I have not found something that does what I need better than GrapheneOS.
No change here: zero problems.
Many of my clients use Microsoft’s software, or Apple’s software.