It's that time of year again, time to steal some of Cortex's search rankings to talk about my own "State of the Apps" - the applications and setups I use to make my life what it is.

Since my last post, and in fact in just the last few weeks, I've moved house, which as you'd expect has been quite an intense period. With this move, I'm hoping it gives me a chance to look at the tools I'm using to get things done and reconsider if they're useful. And of course, with a new house comes new things I probably need to keep track of and manage.

#Platforms

#OS

Just as the Cliche goes, I'm still an Arch user, and I can't see myself being anywhere else. Arch does everything I want it to, has basically every piece of software available in its repositories, and works with everything I need. All my personal devices, and most of my servers run Arch, and I'd like to move more servers over at some point (Debian is definitely nice, but I find Arch nicer).

Last year, I mentioned about wanting to look at Nix. That hasn't gone away, but it just hasn't happened yet. Nix might make more sense for me than Arch, given I already use Ansible to deploy everything to it (when I remember to update the repository), but it's such a change from how I manage my system now, that it's a lot of extra work. At some point, I suspect I'll install it in a VM to play around with and see if it does make sense for me as I need it to, but for now it's very low down on the list of things to try out. I'm also glad to say I've not come across those certain Nix "advocates" in a while, which has definitely been an improvement on my life.

#Desktop Environment

A device is nothing without a desktop environment, as it's where everything gets done. I've been an i3 user for a long time now, and whilst I don't really have a problem with it, having to build up everything else outside it is getting tiresome, no matter how interesting it may be. I've done my i3 time, and whilst tiling managers might be great for some, and are definitely useful to me, I don't need something as hardcore tiling if it means I sacrifice on some other niceties.

For a few months now, I've actually been using KDE as my primary desktop environment. I've just installed it fairly plainly over the top of my i3-based systems, which has definitely caused some issues, especially around theming, but it's there and working and I'm getting more familiar with it. I can definitely feel the weight of KDE, especially when it comes to installing updates, but it does so much without me having to think about it that it's worth it to me. Last year I was still toying up desktop environments to switch to, but now I'm confident KDE is the direction I want to go.

There are a few mental hoops I have to jump through when using KDE, but those I'm sure will fade with time. The lack of tiling shortcuts does grate, but KDE does support some basic controls, and is getting better window tiling soon. Remembering where windows are, being able to bring the correct ones to the foreground is more work than with i3, but using random desktops with i3 to throw windows out the way always felt like a hack, and with KDE I can just minimise them and stop caring. A mixture of the taskbar and app overview are mostly doing it for me for now. In contrast, having additional monitors "just work" is fantastic, KDEs power management tools are useful when I'm out and about (which granted isn't often), and my latest find that KDE's mic muting shortcut also changes the LED on my headset are all small quality of life improvements which slowly add up. Sure there's less tinkering under the hood I can do, but there's still definitely some, and sometimes I just want to get on and do work rather than debug weird screen tearing issues (which still kinda plague me).

I was planning to switch to KDE fully over the Christmas break, but that's not happened, and probably won't now for a few months. I've made a kde branch on my dotfiles repo, which I'll eventually use as the basis to switch one of my devices, and slowly switch from there. My work machine still runs i3, because that's the device I can't afford to break (especially when I'm on call), so that'll likely be the last to switch over.

Given the number of tweaks and customizations I made to my i3 setup, and just the few I've made to KDE so far, I'm not expecting ansible-izing it to be especially fun. KDE has lots of separate config files, which I'm either going need to manage with kwriteconfig and have a slow deployment, or version the whole file and risk missing changes.

#Shell

Lots of what I do requires a terminal, and for that ZSH has been doing just fine for me for many years now. I've considered switching back to bash a few times, but what I have "just works". It's a very stock shell, with a minimal prompt and a few helpful aliases - nothing more. Makes switching between servers and machines much simpler. My biggest pain point right now is that the syntax highlighter it runs is slow when pasting in huge commands (like "Copy as cURL" from a browser).

For the terminal itself, I'm still somewhat reluctantly using Alacritty. As an emulator it's great, and very fast, but it's more tmux running inside it which is causing me my issues. I've mentioned before about my clipboard issues, so I won't repeat them. Chances are, with the switch to KDE will come a switch to Konsole. Konsole isn't GPU accelerated, but for most of what I do that doesn't really matter (even though I think I can feel the difference). Konsole does however have native splits and tabs, which means I should be able to ditch tmux.

#Browser

It's getting to the point now where I'm considering just skipping this section entirely. I've been a full-time firefox user for so many years now and I have no reason to switch away. I do still want to play around with Containers, as I had a lot of people tell me they're really cool after last time, I've just not gotten around to it. I do a lot of searching in private browsing anyway, so switching that to using containers and being able to keep some history would be nice.

The biggest browser-related change actually comes from my phone. Since its launch, I've been using Firefox Focus as my main browser on my phone, because I never did anything important. Now though, having a syncing history would be nice, as would being able to have tabs (something crazy to have to say in 2022). So instead, I've switched back to regular ol' Firefox, but with the caveat that links open in a private browsing session. This gives me the privacy-respecting features of Focus, but with everything else Firefox has to offer. I even get DarkReader!

#Servers

As I said, I run quite a lot of the critical tools and applications myself. For that, I need servers. To talk about that, it needs its own post, so I'll talk about that somewhere else.

#VPN

Yes I've been working from home since "the events" of 2020, but having a VPN is still useful. The TV adverts from companies like Nord imply that without a VPN, it's possible for hackers to steal all your sensitive details. In reality, that just isn't true, mostly. Basically everything you do online, even reading this article, is encrypted in some form already, without the need for a VPN. However, VPNs can still be useful when on weird network configurations, or doing sensitive things on potentially untrusted networks.

I'm a huge fan of Mullvad as a VPN. Mullvad were huge proponents of WireGuard back in the day, and all of their client applications are open source. Better still, they have first party support for just downloading WireGuard configs and using them manually using any WireGuard client. If you're looking for a VPN, check them out!

My biggest gripe with Mullvad isn't really a gripe. Mullvad subscriptions only come with 5 devices. Sadly, that's not 5 concurrent devices, that's 5 total devices provisioned. Currently, I have 6 devices which might want a VPN, including 1 server. I've been tempted to provision something more manually myself for certain use cases, either by running my own server, or by giving Mullvad more money and having a "services" Mullvad account.

#Email

Email isn't going anywhere, as much as we may want it to. Basically everything will back on to email in some form, so it's important to use a service that you trust and has the features you need. For me, that's Fastmail. Fastmail supports basically everything I need, unlimited aliases and domains, and have a great track record for user privacy and security. Fastmail isn't end-to-end encrypted like services like Proton, but they promise not to look unless they absolutely have to.

I've seen MXRoute touted as a good alternative service, but I have little reason to switch to anything else. Fastmail has served me well for many years, and I have no real reason to look anywhere else right now.

#Client

Email is nothing if there's no way to read your emails. Fastmail does have a great web UI with lots of features, but sometimes I want something more native.

Thunderbird is still my go-to desktop application for email, mixed with the Fastmail web UI when I need it. I seem to do lots of my email sending through the web UI, but reading through Thunderbird. It might be because I use aliases a lot, or don't quite trust Thunderbird's email formatting, I'm not sure. If Thunderbird supported syncing aliases with Fastmail, I might use it more for writing. Thunderbird also has the benefit of having a built-in Matrix client, but it's not quite up-to-scratch for something I'd want to use all the time. Thunderbird is also getting a huge update to its calendar, which will make my life a lot better. Currently I do all my calendaring on my phone, or using a Google Calendar embed.

for the few times I email on my phone, I just use the Fastmail app. Mostly because it "just works" and supports all the Fastmail features. Thunderbird's mail app is on my radar, but I tried k9 mail a few years ago and it wasn't quite enough, so it may be a while before it's suitable for me.

#Music

When I work, I listen to a fair amount of music. Otherwise it's just me alone with my thoughts, and that's a dangerous place to be, trust me. For me, I'm still fairly happy with Spotify. Their clients work well, the library selection is fine for my needs, and I can add my own tracks if I need to (with an extra package installed). For me, the convenience of Spotify's huge and ever-growing library trumps the benefits of maintaining my own library. I hope someday the same is true for video.

As with every year, Spotify releases their "Wrapped" story with a bunch of statistics of my listening history throughout the year. I don't quite know how I feel about Spotify tracking and storing all this metadata, but I can't really avoid that. Apparently, in 2022, I listened to 39416 minutes of Spotify (almost 4 weeks solid), totalling 2536 unique songs from 1868 artists.

#Video

I also watch a fair bit of video. The majority of which comes from YouTube. Sadly, I still do most of what watching via YouTube itself rather than an alternative like Invidious or Piped, even through the consumption itself is generally through RSS. I'd love to use one of them, but they're just not quite good enough. Invidious feels very unstable and has a lot of bodges, and whilst Piped is soooo close to being good, not being able to track playback history is a dealbreaker to me. Sure I could keep using RSS with piped, and have that track the watch history, but it's not quite the same. I've been using my phone and TV a lot more for watching YouTube, so it's possible I won't be able to get around using YouTube itself.

As for more conventional content, I use Jellyfin and don't intend to switch. I briefly played around with Plex a few months ago, and whilst it's more polished, I don't like its always-online nature. I do miss some of the extra metadata Plex provides, but with Jellyfin getting better and better with each release, it won't be long before it improves. Jellyfin's apps are also reliable and easy enough to use I can give the app to anyone and they can work their way around without issue.

#Podcasts

My podcast consumption is something I'm not too happy about over 2022 - It's reduced even further than it did before. I only really listen to podcasts when I'm commuting, which whilst being a few hours each way, is quite a rare occurence. I used to frequent the Linux Unplugged live show, but I don't think I've attend one since March.

As for the clients, I'm still a fairly happy PocketCasts user. Even more so now their clients are open source. The server side still isn't, but having the clients open is definitely better than nothing. PocketCasts syncs the play queue with their web app, and nicely supports Android Auto in my car.

#Productivity

#Calendar

This year I've found myself using my calendar a lot more to remember the things I'd otherwise forget. Last year I migrated my primary calendar to Nextcloud, and it's been great. All new events and management is done there and synced to my phone using DAVx⁵. I haven't really changed my app usage this year, besides doing lots of things through the Nextcloud web UI. I'm still using the Google Calendar app on Android, but Etar is an app I'd like to play around with again.

#To Do

My to do list is something I should really start looking at more. There are often tasks I need to do, but as I never write them down, I forget and they fall off my radar. Todoist is still my tool of choice. I know it's not self-hosted, but the experience of using it is just what I need. I want to be using it to note tasks down, not faffing with configuration. I've considered switching to Nextcloud Tasks and Tasks.org, but the app just isn't quite as polished as I want. I don't want to invest in a new platform before I start using the platform I have.

#Editor

Whilst I don't write as much code professionally or personally as I have in the past, an editor still plays a large part in my day-to-day life. Much like it seems almost everyone, I'm a VSCode user. VSCode has all the features I want, at a performance point which is quite surprising for an electron app. I'd love to use the fully open-source version of VSCode, but I need the remote development extensions for Docker and SSH quite regularly. Sure I could maintain 2 different installs, but I tried that once and it was more effort than it was worth.

Something which I've been quite excited about this year has been Jetbrains Fleet. In the past, I was a fan of the Jetbrains suite of IDEs, but switched to VSCode as it was simpler to use and more lightweight. If you want an IDE, Jetbrains is a good way to go, but I don't really. Fleet however is much closer to VSCode. Fleet is still a JVM-based editor (well, Kotlin), but some of the non-UI side is actually written in Rust. I doubt Fleet is going to replace VSCode any time soon, and the install size is almost 2GB, but it could be a nice alternative for people wanting something different.

#Notes

I don't write a lot down, but when I do, it's generally important stuff. So far, blog posts and notes, I don't write much. However, I need to write more down. My setup is getting more complex, and my memory sucks!

Tooling wise, I'm still quite a fan of Obsidian. Granted I use very few of its features, but it's still a great, cross-platform markdown editor. Even now, I'm writing this paragraph on my phone on the in-law's sofa in the same environment as I would on my computer. The synchronization isn't perfect on mobile, I'm using FolderSync on a timer, but for my use it's ok.

I'm after a platform to document everything. I'm realising I need to write down the important details in my life before I forget them. I could stick with Obsidian, but I'd like something easier to consume for people other than me. Outline looks interesting, but requires external auth. Appflowy has potential, but is only a desktop app for now. Notesnook is the most enticing at the moment, but the sync server was only just open-sourced, with no hosting docs and several separate containers. Obsidian with something to build a static site could be a winner, but sacrifices more on usability than I want.

The Zettelkasten method is quite a beast when it comes to taking notes, and is what Obsidian is really designed for. But for what I need to do, it's not useful. If I knew about it when I was studying, sure it could be useful, but for right now it's not the tool for me.

#RSS

In my life, I consume a lot of content through RSS. Whether its blog posts from people I find interesting, software updates from GitHub, or YouTube. Granted I do get a lot of this from Twitter too, but who knows how long that'll keep running... RSS isn't perfect, but it's enough for me.

Speaking of not being perfect, my RSS aggregator of choice is still TT-RSS. It's not perfect, and the UI definitely hasn't aged well, but it works fine for me.

After hearing about it on an episode of Changelog, I briefly looked into Feedbin. The UI is lovely, and some of the features it has are really cool, but it's not easy to run myself. Whilst Feedbin is open source, it's not designed to be self-hosted, nor is it something they recommend. There is a docker configuration for it, but there are lots of containers and they're pretty chunky. So sadly, it's not viable for me. Sure I could just use the hosted version, and even give Feedbin some well-deserved money, but I'd rather run something that important and personal myself.

#Tools

#Password Manager

It's not funny anymore - if you're going into 2023 without a password manager, you're using a computer wrong.

For me, I'm still a fairly happy Bitwarden fan, using Vaultwarden as a backend. For Vaultwarden, it's simple to use, easy to configure, and lightweight. Bitwarden itself though is getting a lot better. In the past, its user experience has been pretty horrible compared to other password managers, and laughable compared to the giants like 1Password. Given that just a few days ago Lastpass's recent data leak exposed their terrible security practices, I'm quite glad I store my passwords on my own server!

A few weeks ago, Bitwarden announced a unified container deployment, which allows running the official server as a single container, and with support for MySQL and PostgreSQL. The official deployment is made up of several different containers and only works with MSSQL, which is quite a pain. The unified version is therefore much simpler to use for smaller deployments like mine. Whilst I like the idea of using the official server because it's been audited, it's far heavier than I need it to be, and because vaultwarden still uses the official Bitwarden clients, most of the security benefits still apply. Given how much I use and rely on both Bitwarden and Vaultwarden, I should probably give them some money (besides just code).

In late 2022, I started leaning into using my Yubikey more and more. Technically, having your TOTP codes in your password manager removes the value of it being a "second factor", as they're stored alongside your password. With that, I plan to try and use my Yubikey much more, as it's much more secure for a variety of reasons (not reasons to get into in this post). To make that better, I'll likely rotate and remove my 2FA details from Bitwarden to move them somewhere, to move TOTP closer to the security posture it's intended to have.

#Storage

I don't have a lot of data, but I do need to keep it somewhere, and keep it reliable. For that, for now, and for the last few years, I've been a fairly happy Nextcloud user. I have little interest in their "Hub" package of groupware, as I don't do any communication through Nextcloud nor do many (or any for that matter) other people use it. I'm generally not a big fan of having 1 tool do absolutely everything, if different tools can do things substantially better. But for some of the things Nextcloud does, it's on par with some of the other tools out there.

With the more recent releases, Nextcloud has added support for PHP 8, which has had a huge boost to its performance. I still keep a few of the core apps disabled to improve performance a little, but overall I'm pretty happy with its performance levels. I still run more processes than the LinuxServer default for similar performance reasons without issue.

For more details on how my storage actually works, you'll need to read my server setup post.

#Git

Almost everything I do is managed by git. From the code behind this website to the configuration of my servers - it's all git. The content for this website used to be, but not anymore. For my public projects, you can find them all on my GitHub account, mostly because that's where everyone else is. If I want people to contribute to or consume a project, that's where it is.

For everything else, I run my own GitLab server. That's where the primary copies for a few of my projects live, to then be mirrored to GitHub. I've been running my own Git server for a while, and I have no reason to stop. For lots of little internal tools, scripts or configuration, it's really handy. GitLab for now is where I'm staying, as it has the features I need. I recently setup its static site hosting for simple hosting of some static sites, but it's not quite perfect. I want to setup mirroring from GitHub to keep backups of my repositories in case the worst happens, but GitLab hides pull mirroring behind a paywall, which I don't want.

Since I transitioned to GitLab, Gitea has really upped its game. In the last few weeks, they announced a preview for a native CI system to compete with GitHub actions. If this comes to light and is good, it might be enough to convince me. My biggest gripe with Gitea was its user experience, and as I use GitLab professionally I've got used to GitLab's qwerks. Gitea is much more customizable and much more lightweight, so with some tweaking it might be able to give me what I want. Not to mention that Gitea supports a tonne of features that GitLab only allows their paid customers to access.

#The future

2023 is going to be a big year for me personally, building on some changes in 2022. Sadly however, I wasn't able to achieve as much as I may have wanted in 2022. I'm hoping that with some more focus and dedicated time, I'll be able to achieve more of the things on my list. I think the biggest theme for me in 2023 is about sustainability, making sure I can keep doing what I want to do and making my life easier. Exactly how well that goes, we'll see...

Share this page

Similar content

State of the Apps 2021

2021-01-01
7 minutes

It’s that time of the year again: time to look back at how I work, the tools I use, and how the next year might look. I’ve been working from home basically full time since the UK went into lockdown 17th March. It’s been quite an adjustment barely leaving the…

State of the Apps 2022

2022-01-01
14 minutes

It’s a new year, so it’s time to reflect back on the tools I used last year, how they’ll change this year, and how they might change in future. It’s still an idea I’ve completely stolen from CGP Grey / Cortex, but I think it’s useful, fun and interesting. I’m…

State of the Apps 2020

2020-01-01
5 minutes

This year marks the 3rd year of my pattern for publishing a “My Stack” post, noting down how I get work done both professionally and personally (2018 / 2017). This year, I’m stealing borrowing inspiration from CGP Grey / Cortex and their “State of the Apps” episodes, and also talking…

View all →