Running a Norwegian law firm on free software
Once upon a time across the North Sea
I have been jealous of some guy on the internet ever since I read about how he, an English lawyer, was running his law firm on Linux. Recently Neil posted a 2026 update.
In 2026 I am not jealous anymore, though, because now I am doing exactly the same: after spending 20 years as an IT lawyer at Føyen, I started my own small technology law firm on free software. The Norwegian online magazine for developers kode24 has published a story about my technological choices (in Norwegian). This post is based on that story.
A word of warning
Having the freedom to choose your stack is a bit like having a credit card with no credit limit – everything is within reach, and there’s a lot to tempt you. It’s easy to run up a lot of technical debt when you build your own stack. So you have to be a bit careful.
Fundamentals already in place
Fortunately, I already had the fundamentals in place: I had an established infrastructure with the basic services such as DNS and email, and even my own registrar agreement with Norid – the .no registry.
Most of the servers are running OpenBSD, one is running FreeBSD, and recently I added a VM with Alpine Linux to do some experiments with containers. For email I use Exim and Dovecot.
Monitoring, backups and provider diversity are all there.
Fedora with KDE as the desktop
I managed to get away from Windows while still in my old job, and for almost two years I could enjoy a MacBook Air. Even so, I’m happier with KDE and Xfce, so I went for Fedora with KDE on my new work machine. The machine itself wasn’t new, by the way – it was a 1st-generation ThinkPad T14 that I bought used.
In fact, most of the hardware and all the office furniture were bought second-hand.
I have chosen Fedora with KDE, because for many years I have had a spare machine running that setup, as not all software is available for OpenBSD. My main personal machine is running OpenBSD.
The ThinkPad struggled with graphics and video meetings, though, so I got a NUC 15 and swapped the disk. The laptop remains in service running Alpine Linux for experiments.
LaTeX for document production, LibreOffice for Office collaboration
In the legal profession – as almost everywhere else, really – Word files are the de facto standard. From time to time I have to deal with Word files, and LibreOffice handles those without issues.
For my own documents I chose LaTeX, though.
I learned LaTeX 20 years ago, when I was a student writing my thesis at the Faculty of Law. The faculty had a Word template, and all students were to write and submit using the template. I wasn’t ready to produce such an extensive and important piece of work in Word. After some back and forth, I was allowed to submit the thesis as a PDF. Ever since, I’ve had a dream of using LaTeX at work.
Naturally I’d forgotten a lot, and this summer I had to brush real dust off the 2nd edition of The LaTeX Companion. It was fun!
In the meantime the 3rd edition of the book had come out and I have it too.
Zola for web pages
I knew I didn’t need a dynamic website, but I still went a few rounds before landing on Zola.
The first idea was to have a simple page with a bit of information, and maybe something blog-like at Bear. I had in fact paid for a lifetime account at Bear, without using it for anything. I dropped the idea because I would surely need a few more pages eventually, and then I might as well publish the posts myself.
Hugo was the first option I considered, but what tipped it in Zola’s favour was the template syntax: Zola uses Tera for templates. Tera is a lot like Jinja, which I already knew well.
I should of course mention that a few days before launch I upgraded Zola to version 0.23.0 and … things stopped working! In the changelog the developers write:
“This is probably the most breaking version of Zola that will happen. Depending on how you use it though, it might not be too long to migrate. It took about 20 minutes to upgrade the Zola docs and it was mostly because it contains a lot of Tera syntax (as we will see later).”
Ugh… I think it took 20 minutes or so to get rid of the errors.
On my other machine – my main machine with OpenBSD and Xfce – Zola was still at version 0.22, and of course the fixes didn’t work there. Ugh!
Some third-party services
I do use some third-party services, though: for invoicing and accounting, for email on the apex domain, and for optional collaboration using Google Docs, as customers often use it.
Even though I do have my own email service, I chose to use Fastmail for the main email service. It runs on free software, I was involved in its development as a law student, and I know the people who run it.
A remark about AI
I do use AI tools, but I do not use them to do the legal work or do my writing. I enjoy using my brain, and I enjoy giving it a challenge.
The machine designed the website and made LaTeX document classes. It also does the proofreading of my texts.
For customer stuff I don’t use it, unless that is part of the workflow the customer is expecting.
Open questions
Some pieces of the puzzle are in place, but a lot is still missing. The big question is probably collaboration with customers, but so far using email attachments and Google Docs has been working well.
I also haven’t landed on a good setup for document management. Fortunately it isn’t that complicated with just one user – me – but I want something logical, clear and clean. For now it’s a folder structure synchronised between my machines and a server with Syncthing. The files are backed up on the server.
Even though a lot is still open, one thing is pretty clear: Quorum is based on reuse and free software.
– Kirill