Stuff I Use
Welcome to my /uses page. Inspired by folks like Wes Bos and Kent C. Dodds, it is a living document of what I actually reach for. Over the years I have moved steadily toward open-source, open-protocol and privacy-respecting tools wherever they exist, and made my peace with the handful of places where they do not.
One rule governs this page: something is listed only if I use it, use it in preference to the alternatives, and can say why in a sentence or two. Anything I cannot defend that way has been cut, however popular it is.
Am I missing something you wanted to know? Hit me up on Bluesky. And do check out uses.tech for everyone else's /uses pages.
Desk
Repairability as a purchasing decision. I have swapped ports on a train platform and replaced a part without an appointment or a proprietary screwdriver; on every other laptop I have owned, both would have been a support ticket.
1440p at 165Hz. The high refresh rate turned out to matter far more for dragging windows and scrolling diffs than it ever did for games.
Tactile Halo True switches, hot-swappable, in a case heavy enough that it does not slide when I type angrily. Years of daily use and it still sounds new.
The obvious pick, which is precisely the point. On calls from hotel rooms, conference corridors and airports, nobody has ever once asked me to repeat myself. Boring hardware that has never been the problem.
Wireless with active noise cancelling, and old enough now that the battery has outlived two phones. I wear them for eight hours at a stretch without remembering they are there.
Dev environment
My choice of browser leans hard into free software and the open web: Gecko is the last major engine not owned by an advertising company, and keeping it alive is part of the job. The rest of the stack follows the same instinct from a different angle — bleeding-edge Arch, a native editor, a native terminal. Lean, fast, and stripped of the bloat that Electron made normal.
Firefox underneath, which is the entire point: Gecko is the last major engine not owned by an advertising company. Zen just makes it a nicer place to spend ten hours a day.
Arch for control over every layer of the system, with the CachyOS repos for compiler-optimised builds I do not have to maintain myself. Bleeding edge on borrowed maintenance.
Native, GPU-accelerated, and configured with a plain text file rather than a JavaScript bundle. A terminal emulator should not ship a browser runtime.
Paired with oh-my-zsh for the plumbing and Starship for the prompt. I have carried this configuration across four machines and three jobs.
Fast enough that the editor is never the thing I am waiting on, which sounds like a small claim until you have used something that isn't.
Lives in the terminal instead of holding an editor hostage, which means it composes with everything else here. Most of what I hand it is the work I would otherwise put off.
For the longer-running work that does not fit in a single sitting. Different shape of problem from Claude Code, same reason for reaching for it.
Gaming rig
I split my computing life to keep both halves clean. Windows lives at home purely to play games on a humble rig without fighting compatibility layers, which keeps the work laptop focused and free of things it does not need.
Ryzen 5 2600, GTX 1660 Ti, 32GB. Deliberately humble and deliberately unchanged: it still runs everything I want at a resolution I am happy with, and upgrading it would be a hobby rather than a need.
Linear Gateron Reds, because games reward travel that does not fight back where writing rewards tactility. That difference is the whole reason I do not use one keyboard for both.
Wired, on purpose. I would rather never think about a battery than save a cable, and this is the only shape that has never given me wrist ache.
Bought years ago on the strength of the padding rather than the drivers, and that turned out to be the right thing to optimise for.
The one piece of default Windows software I would install deliberately. It made the platform's shell story tolerable, and it is open source.
Objects down the pipe instead of text, which is a genuinely better idea than the Unix version even when the syntax is not. The cross-platform rewrite is the part that made me stop avoiding it.
Phone
Stock Android, mid-range, replaceable without grief. I stopped buying flagships when I noticed the only phone property I actually care about is that losing it should be annoying rather than catastrophic.
The pair I actually reach for, because they live in a pocket rather than a bag. Everything I want from earbuds is that they are already with me.
A search-first launcher: I open it and type instead of hunting through a grid of icons. It replaced Lawnchair once I realised I had not deliberately looked at a home screen in months.
Swipe typing and voice input that run entirely on-device. Every other keyboard with gesture input wanted a network connection to do the same job.
Installs and updates apps straight from their release pages. No store, no intermediary, no waiting for somebody to repackage a build that already exists.
For the handful of apps that exist nowhere but Play. Anonymous sessions mean I can install them without a Google account attached to the device.
Push notifications with no Google Play Services anywhere in the chain. UnifiedPush is the rare open protocol that ends up simpler than the closed one it replaces: one distributor, every app that supports it, no Firebase.
Sync, security and self-hosted
Moving to Matrix, Nextcloud and Bitwarden was an aggressive push for control, federation and the ability to audit what happens to my own data. The common thread is not ideology so much as an exit path: every one of these lets me leave with everything, which is most of why I trust them enough to stay.
Files, calendars and contacts on hardware I control. The sync is measurably worse than the commercial options; owning the data is worth the difference to me.
Device-to-device sync with no server in the middle. It is the software on this page I think about least, which is the highest praise I have for a sync tool.
The bridge that makes Nextcloud's calendars and contacts native on Android. CalDAV and CardDAV are decades-old standards that still quietly beat every proprietary equivalent.
Blocking at the DNS layer covers every device and every app, not just the browser. Hosted rather than self-hosted specifically so that it follows me onto mobile data.
Open source, auditable, and documented well enough that I could export everything and leave tomorrow. That exit path is most of the reason I have not needed to.
A second factor that cannot be phished or SIM-swapped, because it is a physical object that has to be touched. The list of services supporting it is finally long enough to matter.
Open source, encrypted, local-first TOTP. It replaces Authy, whose deliberate export restrictions are precisely the kind of lock-in this page exists to argue against.
Notes and comms
Everything here stores its data locally first and syncs second, so my notes and my message history stay mine even when a service, a company or my own enthusiasm for a tool goes away.
Local-first, plain Markdown files on disk, outliner-shaped. The files stay readable in any editor, so the worst case if the app disappears is that I lose the interface rather than the notes.
An open federated protocol with a client I can swap out, which is the arrangement email got right and every proprietary messenger since has got wrong on purpose.
A local mail client speaking IMAP to servers I chose, on desktop and phone alike. Mail I have downloaded is mail I still have when I am on a plane or between providers.
Reading and listening
The one section where I have not managed to be consistent. Reading runs entirely on open standards and software I host; listening runs on Spotify, and I have made my peace with the trade by making sure the record of what I listen to is not Spotify's to keep.
A minimal self-hosted RSS reader that does one job and has no opinions about what I should read next. RSS survived the death of Google Reader and every algorithmic feed built since.
Self-hosted read-later that keeps the full article rather than a link. Roughly a third of what I save has since gone offline, which is the entire argument for it.
The one walled garden I have not escaped. Everything else on this page I chose; this one chose me, through everybody I share music with.
The compromise that makes Spotify tolerable: Spotify plays the music, an open archive owns the record of it. It is also what feeds the now playing widget on this site.
Coffee
Pulling a shot on the Bambino, or hand-grinding when there is time to spare, is a deliberately analog counterweight to everything else on this page. It is the only part of my day that cannot be automated and I would like to keep it that way.
Heats in three seconds and pulls a shot good enough that I stopped visiting the cafe downstairs on work mornings. It paid for itself in about four months.
Cheap, conical, and does most of what a grinder four times the price does. The Skerton is for when I want the ritual; this is for when I want the coffee.
A hand grinder for weekends, when the two minutes of cranking is the point rather than the cost.
Retired
Things that used to be on this page. Keeping them here felt more honest than quietly deleting them.
Tried it for side projects and never formed the habit. Replaced by Claude Code.
Good software that lost an argument with how I actually plan my week.
Logging what I read turned out to be effort I would rather spend reading.
Blocking distractions works right up until the blocker becomes the distraction.
Served me well for years, but I stopped looking at home screens on purpose. Replaced by Kvaesitso.
Clever, endlessly configurable, and I configured it exactly once.
Abandoned upstream since December 2022 and many security releases behind. Recommending it on a page about privacy had become actively irresponsible.