Software Tools I Use - 2023 Edition
I experimented with a lot of new software in 2022. The main reason being a Cambrian explosion in new apps promising gains above my current tools. In the end though, I circled back to roots by 2022’s end and took ideas from those newer apps with me to enhance my existing stack and flows. New software gains didn’t exceed tradeoffs. But, my stack got much more effective without really changing software. If anything, I’ve gone back to using fewer, more open tools, and come up with more creative ways to stopgap shortcomings over the new new things.
Desktop
Emacs org-mode
I have a love/hate relationship with emacs org-mode. It’s explicitness and power are frankly amazing, but the fact it’s mired in 40 year old UX and interface constructs, lisp, curmudgeons, not Markdown, temperamental, and has a huge learning curve makes it tetchy and often surprising, like in its lack of support in org-agenda for timezones . Reasons I tried both Logseq and Obsidian as alternatives this year (I’m still praying emacs and org-mode have a revival/resurrection like we’ve seen with NeoVim which has made vim so much better).
Both Logseq and Obsidian have their charms (though I’d call out Obsidian as being the better alternative at end of day, and I had some data loss incidents as an early Logseq adopter that soured me permanently on it). Obsidian addressed many shortfalls of emacs org-mode the most (modernity, ease of customization, and sharing), but ultimately both systems lacked as robust task management as org-mode. Ultimately, I needed a system I trusted to put things into and make sure they got processed when needed and helped me sleep at night. So, by end of year, I’d circled back to org-mode and integrated newer packages (org-roam, nano UX, math-preview etc) that has given me an even more robust GTD system.
Turns out, codifying systems and frameworks ends up being much more productive and reassuring than any single software. Simple works.
I’ll be updating my 2019 GTD and CRM flow for emacs org-mode post since so many things have changed (as well as how I implemented ideas like my Resonance Calendar and friends.). If you do want to go this route though, be careful. Emacs is a deep rabbit hole you can go down and not get any work done with. Be clear on what you will and won’t use emacs for. Boundaries are key.
Alfred
Alfred is a launcher, file mover, clipboard and snippet manager, and workflow framework.
It’s probably the longest serving piece of software on my Macs (ever since QS died). It’s what I miss immediately when I use a mac or system that does not have it (or say, rofi on linux). ⌘-space, ⌘-L/R (for fullscreen term and emacs), and ⌘-Tab are probably my most used daily keypresses.
(while some friends I respect have recently switched over to Raycast and there is Sol as an open alternative now, I’ve been happy with Alfred to date (though I wish they’d focus on core features rather than extending and breaking old workflows people have built.).
Kitty
kitty is my preferred terminal. It offloads rendering to your graphics processor for a faster, snappier term experience. It also support ligatures in fonts which its main rival, alacritty, does not. The config is clean and simple. Other than switching my colour scheme to catppuccin, it’s pretty much the same as previous years.
Still using fish shell and tmux with tmuxp for a nice (tmux config if you want a look like pic below ), multi-window aesthetic for multiple terminal apps. Works great. Especially in conjunction with neovim.
Firefox
I’d actually say its getting harder to use Firefox due to developers optimizing for Chrome (or using Chrome specifics). I’ve had a least a few instances now where institutional sites didn’t work correctly on Firefox (pdfs, chats etc) and required flipping to chrome or safari to get what I needed. Mind you, this may have been because their features were violating basic security or privacy standards, but it’s hard ot tell whether I’m being protected or it’s bad web dev from institutions.
I still use it because it’s fast, privacy-respecting,
cross-platform, and has a great extensions ecosystem. I also sometimes use the
password manager for non-critical sites versus gopass
(below)
though would love it if they integrated its use directly as an option.
I’ve greatly reduced plugins used:
- OneTab
- Video Speed Controller (for watching Youtube at 1.X speeds - especially lectures)
- Simplify Gmail (for a much cleaner mail experience - paid)
- AdNauseum (for ad blocking and obfuscation)
- Privacy Badger (from the EFF)
Dropped plugins:
- Instapaper - replaced by OneTab above - see Surfing Ephemera Overload post
- Save to Notion - moved Resonance Cal to org-mode (though Notion’s web clipper is best in class, imho)
VS Code and NeoVim
Despite using emacs for everything prose, notes, planning, and tasks, I end up using VS Code and NeoVim for coding (not sure if this is just because I lke “coding” and “writing” being separate software spaces, I may just need to sort out emacs as a dev env properly.)
Both end up being great dev environments with amazing plugin environments though VS Code is easier to config and use. So, I’d argue I use it slightly more, though some days I prefer using NeoVim. NeoVim is way faster than VS Code and I like the way it works with Go and Rust better. VS Code’s support for Typescript and JS is amazing though and has a nice integrated terminal amongst cool plugins like wallaby. It feels like I use VS Code more for interpreted languages, and NeoVim more for compiled ones (though I just realized that as I’m writing this.). I also experimented with NeoVim since it had an excellent note-taking plugin in Telekasten which I really liked, but again no robust task-management app, so back to org-mode.
I do prefer NeoVim philosophically over MS’s increasingly concerning embrace and extend approach (Github purchase and integration, sunsetting Atom). And still always impressed by my old peeps at Neo/Pivotal Labs who were *amazing# in their ability to use it to develop code. I aspire to that level of facility with it.
On both VS Code and NeoVim I use the Cobalt2 colour scheme.
mpv
Open source mpv feels way better than commercial video player offerings. And I prefer the minimalism and compact UX over VLC (though VLC is very good too.). mpv has never failed to play anything I have thrown at it (nor has VLC), and unlike many others.
While Quicktime has closed the gap somewhat with a nice recording screencasts feature and easy editing, for playback and actual video watching I end up defaulting to mpv when not using Jellyfin.
mpv is also command line triggerable which is nice for integration with newsboat (below) for youtube video feeds. Also, mpv works fantastically on tiling window managers in Linux like sway and i3. Experience is even better than OSX.
Insomnia
I’ve started using Insomnia for testing API endpoints over Postman. Mostly, I just find it less fussy and easier to work with as Postman has gotten, well, messy… as its tried to add more enterprise-y features.
I should point out that most of the projects where I’m using it are not large team-based initiatives, and more my indie dev projects, so that might make a difference in your choice, but if you do a lot of API end point work, you might want to check it out.
Arq
Your data is vastly more important than your machine. I pursue a strategy where even if my machine were destroyed completely, I could be back up in under a day and working (despite all my data).
I’ve been using Arq for years now and its been super-reliable and no-nonsense for backups to both AWS (though S3 backups are getting pricier) and Dropbox. Restores on the file or directory level are painless and its already saved me once when I had a catastrophic hardware failure. I have been unable to find a tool in Linux land which is as trouble-free and easy to use.
The Clock
Co-workers and friends are often in different timezones. This simple menubar app drops down a panel to give me a nice calendar and a list of configurable timezones in addition to nice slider to help with meeting planning. Really useful on a daily basis. Cannot tell you how often I check it on Zoom calls and while planning. Also, lightweight and self-contained. Also, can display week numbers (which I use for planning) and moon phases (for Astro). Really useful.
Services
Useful services enhance my workflow and desktop/mobile experience. Most of these either have a menu bar app or browser plugin which makes them relevant but keeps them out of the way of GTD except when needed.
NordVPN
NordVPN is still my choice for VPNs. Hard to complain as its been trouble-free, does not log, gets past almost all geofences, and has a lot of points of presence globally. It’s also reasonably priced and uses the Wireguard protocol. May look at Mullvad when my subscription runs out, but I have no real complaints with it.
iCloud
I use Apple’s iCloud for saving and syncing files though I think it’s a poor cousin to Dropbox and frankly would like an alternative to both that most developers want to support. Fact is, most mobile apps that use iCloud to sync files start with iCloud first and my Photos sync between my phone and desktop which is the main use case for me (don’t get me started on how they removed Music syncing between iOS and OSX. Grrr…).
Mastodon
I’ve had a Mastodon account from 2018, but much like everyone else, started using it a lot, lot more once Musk started doing horrible things to Twitter, its people, and its status as a public square. Weirdly, I’m liking Mastodon much more than twitter and feel it’s a combination of the lack of the attention algorithm, fewer ads, and simple niceties like having an edit button. I am still grokking how federation changes things, but enjoying it and looking forward to some of the key accounts I follow on twitter moving over (mostly science, humour, culture, and conservation ones.). I use the Mastoot client on iOS currently, but looking forward to Tapbots Ivory since I was a big fan of Tweetbot.
Telegram and Discord
I’ve been using Discord a lot more the last year as both dev communities and academics I interact with seem to have flocked to it.
I use Telegram where I can for personal messaging but mostly friends. I’m already notorious amongst close friends for moving them over to it.
I’m forced to use Whatsapp (much like LinkedIn) simply because most people have accounts, expect you to have one, and, at least in Singapore when I worked there, people used it as an alternative to sms.
Readwise
I read a lot and use a Kindle, so highlight quite a bit. I like the fact Readwise collects all those up for me and provides a way to export them easily to markdown. Weirdly, I rarely review my highlights instead of the notes I make on a book, so wondering if this is something I should be bothering with (though I probably just need more discipline around summarization and review).
I should point out that they’ve recently released a Reader app which many people are abandoning both Pocket and Instapaper for, but I was not a fan trying the beta.
I do like the daily email I get from Readwise with some book highlights, though besides reminding me of what I’ve read in the past, I’m not so sure it helps with the idea of retention — though a good question here is what I would otherwise use to surface past ideas from books I’ve read in as useful a fashion. 🤔
Along with these two services I should also mention I use Bookwyrm and Goodreads though, if I’m being honest with myself, they seem more about vanity and telling people what I’ve read than actual tracking since I use my Resonance Calendar for that (and groom my reading list pretty regularly). I’ve gotten few book recos out of either. Sadly, science, history, and productivity influencers and authors drive more of my future reading list recommendations-wise than I’d like to admit.
Steam
I like Steam since it lets me play games when I feel like it (and I’ve been trying to do that at least once a week). For whatever reason, the friction of a console or Switch is too much, and I do like the fact I can play on both my M1 chipped Mac or my Linux box (with Proton for Windows titles though find graphics requirements often kill my poor little Framework.).
A friend recently got and gushed about a SteamDeck (their Switch) and encouraged me to get one, but not sure I want another device I need to lug around as I try to get more streamlined, rather than less. Still kinda feel gaming is something I should be able to do as an aside, rather than as dedicated.
CLI
Much as I said last year, command line apps are minor superpowers. Many thing are actually way better on the command line. These are what I use:
harsh
harsh is a minimalist habit tracking app.
Incredibly, on release 0.8.20 at time of writing but it provides an easy, simple, text-based log file manner to track and visualize the habits that are important to you (full disclosure: I wrote it.).
It’s targeted at geeks and comfy-on-command-line types, but I’m surprised about how much uptake it’s gotten. Available for all architectures and cross platform on Linux, OSX, and Windows.
Newsboat
Newsboat is an amazing app for ripping through newsfeeds like a chainsaw. It radically reduces the time I spend keeping across sites, events, and youtube videos. It has the side effect of making me angry when websites and blogs do not have rss or atom feeds.
Big fan. You should try it, doubly so if you have a lot of feeds. I find it makes me vastly more efficient in consuming and actioning ephemera.
GoPass
Especially with the LastPass breach and my already defensive approach
to security and self-management, GoPass seems prescient now. An extension of the
venerable pass
password manager, this gives you great security for your
sensitive passwords layered on top of gpg.
It’s been fast, easy to use, and bullet-proof as well as integrating git for version control. There are iOS and Android apps that work with this and your password store on your phone and a nice bridge to use it with your browser.
Ledger (+ Reckon gem)
I’ve become a big fan of plain-text accounting after moving around the globe. I have yet to find an accounting app besides Ledger that’s managed to keep my accounts across banks, portfolios, and business in shape versus commercial apps (often which need a version for every country you’re in and upgrades every year as well as lock-in formats.).
Ledger is a plain text, double-entry accounting program which I’ve been using to track personal finances, portfolio, and business accounts for over a couple of years now. While I have to say I’m philosophically aligned with a portable, grokable accounting format, so far Ledger has been the only program I’ve been able to find that can handle the international complexity of currencies, businesses and various classes of accounting I need with being a digital nomad with feet in several countries. No commercial app has worked giving me a proper overview of my finances.
I pair Ledger with the excellent Reckon ruby gem (gem install reckon
to get
it) which predicts which account my bank entries should go in and automatically
enters them in the ledger file. It reduces my monthly accounting load across
countries and accounts to an hour-ish and ledger gives me that fantastic
overview of my finances. I even used a nice python app someone built last year
to do my corporate financial reporting for SIngapore. 😍 (before handing it over
to the lawyers for submission). I’ve got it down to a nice workflow. While it
needs an updated post, you can see how to set it up Ledger and Reckon
yourself
The ledger format has surprisingly wide support across text editors and an excellent mode in emacs which integrates the ledger reporting module which is super handy (and also let’s you know if you make a double-entry error.). Big fan.
homebrew
I feel brew takes a lot of heat for what is a very hard job, trying to create a package manager for OSX that works outside of Apple (and with the quirks they introduce on the OS.).
Mostly, it works without issue though it did take a while to get packages going for the arm64 architecture when the M1 chips came out.
Many of the CLI apps are installable with a brew install <package>
(harsh etc) and
a good chunk of the actual applications (mpv etc) via brew install --cask <package>
.
It makes the OSX dev experience a lot more linux-like for which I’m grateful.
Other Miscellaneous CLI tools
There’s a bunch of other tools I tend to use sparingly that tend to do one thing better than others. You can read about a few here . In that vein, I’d recommend
- visidata
- git-delta
- dust
- fd
- ripgrep
- fzf
Other Useful Tools
Jellyfin
Jellyfin rocks. Huge fan. I’ve been happily using it on my laptop and then plugging into TVs via HDMI while on the road to get a big screen movie experience. The nice Web UI let’s you browse, manage, and watch your movies and shows.
But it can do more, especially now people have built mobile and music clients so may be experimenting with this more this year as a global media server. At home, the TV could digest it directly which made for a great watching experience on the big screen and with the remote.
I’m shocked Jellyfin is not way more popular than alternatives as I find it simpler, has better UX, and streams effortlessly from my laptop to my TV (before I started nomading) or via an HDMI cable ot almost any TV I’ve encountered traveling.
If you’re using anything else, you should really try it.
Calca
Calca is markdown for math. Spreadsheets are handy but error-prone. Calca allows you to write plain english math formulas and have the calculations done for you. There are alternatives, but I still prefer Calca as it lets you save your documents in a plain text markdown format.
Strangely, this has become even more useful in the last year with my pursuing astrophysics more seriously. It’s made mincemeat of very complex calculations and even helped me avoid making errors since it carries units into the results (which is a tricksy way profs try to trip you up in exercises.).
Frankly, it’s great though the developer is not updating it and sadly, people report errors that are not getting fixed. I really wish the developer would open source it. Emacs has a literate-calc mode now that looks similar which I still need to dive down on to check out as a possible replacement.
Try it if it sounds even remotely useful to you. I was surprised how great it is. Great app.
Transmission
Bittorrent client of choice. Simple, fast, secure, no-nonsense, lightweight, and with a clear interface for selecting options like encrypted peers, controlling bandwidth, seeding, and concurrency. Nice.
Apple Notes
While I end up using org-mode for most of my permanent notes, mobile still lacks a decent note-taking client for org-mode that integrates (though BeOrg and Plain Org are slowly filling that gap.). Apple Notes over the last two iterations has improved enough I now use it for ephemera I need to get down quickly before moving things that need to be more permanent into org-mode.
Google Office Suite
Mail and calendaring. I pay for my own corporate account. Google docs gets used as my main document collaboration mechanism with outside parties, mostly because almost every company uses it. I use the mail and cal apps on my iPhone as well.
I would like to look at Fastmail or similar this year to replace it, though imagine I’ll need a token account for GDocs and outside party collaboration.
Again, any enterprising emacs hacker out there that wants to work on some sort of mirroring and push-pull major-mode that would allow me to sync and transfer stuff to GDocs and interact with others, I would sing your praises to the mountains.
Things I Dropped
Notion/Logseq/Obsidian
While all these note-taking apps are good in their own ways, they all had issues that eventually led me back into just accepting the things that emacs org-mode does not do well.
Notion is amazing UX (though less so then it used to be) and great at collaboration and sharing. It’s a joy to write in, but its lack of useful bidirectional linking and very poor task management (even building an entre database for it), its slowness, and lack of being usable on airplanes eventually killed it for me. I still use it to quickly share or collaborate one-offs with people who don’t or prefer not to use GDocs. Prefer it over GDocs myself.
Logseq held this promise of using org-mode task management with markdown which seems to address my issues with emacs and org-mode but logseq seemed to have serious stability problems, its weird indented version of markdown was problematic for use with other apps, and I had two separate data loss incidents which are inexcusable for an app that’s supposed to be capturing information.
Obsidian I used for a good chunk of 2022 and I have to admit, if I had never bothered with the curve required for org-mode, it’s a worthy competitor now it has a combined edit/preview mode. Many things to like about it. Its task management capabilities with the Tasks plugin are also not bad. But ultimately, even with its Tasks plugin, I could never seem to be able to get it to the sweet spot I had with having things surfaced when I needed them with org-mode.
I still need to migrate and integrate the knowledge bases I built in each of these back into org-mode again now I’m at end of year (sigh). This is the danger of experimenting too much with new software as you often have to commit fully.
Spotify
For whatever reason, I’ve never been a big fan of Spotify. I find the ML curated music lists uncanny valley-ish and often incongruous (something I think Apple Music might have gotten right on their launch). But when someone gifted me a Google Nest for my house I could link it directly to Spotify so started enjoying yelling at my speaker to play me Chilled Cow (for some reason, in Singapore, you cannot link Apple Music to a Google Nest). So, started using it mostly for background music during lockdown, and also many friends share songs via Spotify.
As discussed below (see Music), renting my tunes has never really worked for me (My very first gig was running a record store. Music is serious for me.), since I can never find the songs I have (often remixes or rarities) and many artists I listened to are not even represented in online catalogues.
Client gets points working on Linux, but ultimately, I prefer my own music collection files.
Also, just an aside, does anyone else find that they discover more great new music through Netflix etc than they do through the discovery features on Apple and Spotify? Weird failure mode for music services from my perspective.
Things I Want Alternatives For
iCloud
I use Apple’s iCloud for saving and syncing files though I think it’s a poor cousin to Dropbox and frankly would like an alternative to both that developers support by default for mobile clients. Fact is, most iOS apps that sync files start with iCloud first.
My main use care for iCloud is Photos sync between my phone and desktop and up until very recently, syncing my Music between phone and desktop as well. (don’t get me started on how they removed Music syncing between iOS and OSX in Venture. Grrr…).
Docker
Slow on OSX, and techy (just had a major build bug this morning). I end up using Docker desktop as it has changed the way I develop and deploy applications for the better. I am not happy with where the company is going and am taking a harder look at Lima as an alternative, but the fact is containerizing applications has changed the way I code and deploy (much like Heroku did back in the day.).
Photos
The last decade has turned our smartphones into cameras and how tying this feature to your memories has put both Apple and Google in charge of our most precious data and where these is a huge lack of alternatives.
I am not a fan of the Photos app on either the desktop or the phone, but without an easy migration path to another app, I’m kinda stuck with over 40k photos (and a whopping 160GB photo library covering 20 years of photos and videos.
I’d love viable alternatives that are self-owned, not data-mined, and work between my mobile and my desktop app. No problem paying. Curious as to what other people are using here that isn’t Apple or Goog.
Music
This is a good example of where, much like the Photos app, if I could find a good alternative, I’d switch. Besides the fact the Music.app is not a great player, its main use for me was keeping my music collection synced between desktop and iPhone. It may surprise you to find out that even if you buy an iCloud subscription to sync your files, it no longer syncs your music starting in Ventura. I was certainly unhappy when I confirmed that. You now need to also purchase Apple Music to keep the files you own in sync between your two devices even if you already pay for iCloud storage. Which is outrageous since they literally removed this capability (and technically, tied selling so actually wondering if this is even legal.).
I’m becoming more and more opposed to this model where purchases in the past (books, CDs, DVDs) I somehow do not own if I buy it digitally, and sellers seem to change sales conditions once they’ve got my money.
So, I’ve started looking at alternatives. Right now, I am messing with the excellent Vox player which works on both Desktop and iPhone. Though to keep files in sync it also requires a premium cloud option as well so is probably a non-option.
Videoconferencing
Dislike Zoom (more so after covid and 8 hours a day on it) though recognize its utility and have to admit that its app seems the best in dealing with jitter and lag than others I’ve tried. I’m also not a big lover of Google Meets though at least that only needs my browser.
I did use the (excellent) Whereby for a while when they were first getting started and really loved it, so may try to use that a bit more, but note that it’s big drawback is that it does not have screensharing afaik.
Slack
Slack opposes real work getting done. Well, to be fair, it’s more about how it gets used in most companies and poor communication than the tool itself. Though I do feel the design of the tool exacerbates the issues. While it should get used like an instant messaging client for quick one offs, it has somehow become this replacement for email which leads to this weird, twitchy need to be monitoring 100 different inboxes all the time, rather than a quieter calmer, manageable thing with email. Being in another timezone than the HQ made this even worse.
I find Slack scales poorly beyond small workgroups, and lack of discipline with how to use it leads to a culture where things are not truly decided or written down or recorded, but merely discussed (and often peoples’ recollection of what was discussed and decided is not identical leading to issues across workgroups.).
Succinctly: It exacerbates cultural problems around communication and leads to an always-on, twitchy, say-anything culture rather than considered communications which move things forward.
Really looking forward to someplace using calmer, asyncronous-first alternatives.
Fin
Most other choices are inconsequential or convenience-based (eg Skitch and grimshot for screenshots though often use ⌘-shift-3 or 4 these days). Other tools, which probably deserve an entirely separate post, are astronomy-, physics-, and math-related.
I’m increasingly trying to avoid tools which are based around online services and walled gardens for anything other than collaborating with people. Doubly so if they require special desktop clients.
For the interested, you can see my toolchain evolution over 2022 2021 , 2020 , 2019 , 2018 , to 2017 editions of these posts, and if you’re digging for some ideas on how your toolchain may help you better in the coming year(s).
Something probably obvious is me shying away from desktop tools which are really just online services. For those, I rarely want to use more than a browser, but it’s difficult in a modern workplace (just try using Slack in a web browser…). Increasingly, I want a few core desktop tools and web clients after that. I am increasingly concerned over vendor lock in for my data and information, particularly when that creates work products I want a historical record of (in fact, one of the things I appreciate about emacs org-mode is the historical record I’ve already built in plain text. It’s been super useful more than once.). And also, I would rather see my existing tools improve (hiya NeoEmacs) and have more innovative packages built for. I want to focus on only adopting tools that are local, integrated, data I control, and in formats which are future proof and extensible.
I also want some “magic” way to link source files all th way through to their end usage and sync changes. Like, originate every text file in emacs but then have it synced in GDocs or easily re-represented when used in markdown in my blog (where i might make changes in another editor or tool to it.). Yes, that’s why I said magic.
And that’s it. I hope the post was useful and you made some discoveries that you want to try and incorporate into your own system. Lemme know if you did. Especially, let me know if you think there’s a tool I should try that I may address some of the shortfalls of my own system. Interested in what works and is working for people. Feel free to mention or ping me on @awws on mastodon or email me at hola@wakatara.com .