Stuff (mostly Software) I use

Stuff (mostly Software) I use
Photo by Todd Quackenbush / Unsplash

These are some of the tools I use for writing, web design and development, game development, and all the other random things I do.

Operating System

CachyOS

CachyOS is an Arch-based Linux distribution focused on performance, with optimised packages, custom kernels and a straightforward installation process.

It is my main operating system and gives me the flexibility of Arch Linux while removing some of the initial setup work. I particularly like having access to the Arch ecosystem without sacrificing a polished desktop experience. Moved away from Windows and MacOS in 2025 and haven't looked back since. And yes, its great for gaming also.

Graphics and Design

Figma

Figma is a collaborative interface design tool for designing, prototyping and building products. It is particularly useful for UI design and for experimenting with layouts before implementing them in a game or application.

Blender

Blender is a free and open-source 3D creation suite. It covers modelling, sculpting, animation, rendering and much more.

Pixelorama

Pixelorama is a free and open-source pixel art and sprite editor.

MagicaVoxel

MagicaVoxel is a free, lightweight voxel editor.

I was very tempted to make my first game using voxels, but in the end I decided to stick to more familiar territory. However, I love playing around in MagicaVoxel. It has that magical Lego-like quality that not only makes you feel as though you could build anything, but makes you want to.

PureRef

PureRef is a simple application for collecting and arranging reference images on a single canvas.

It is especially useful when working on visual ideas because I can keep concept art, screenshots, photographs and other references together rather than constantly switching between folders and browser tabs.

Lucidchart

Lucidchart is a browser-based diagramming tool for creating flowcharts, system diagrams, process maps and other visual representations of ideas.

I find diagrams particularly useful when thinking through software architecture, application flows and systems before committing them to code.

Making Games

Godot Engine

Godot is a free and open-source 2D and 3D game engine. It provides a huge collection of common game-development tools, allowing you to concentrate on making the game rather than reinventing the wheel.

Notes and Knowledge and Writing tool of choice.

Obsidian

Obsidian is a Markdown-based note-taking and knowledge-management application.

I use it for organising notes, ideas, research and project information. I particularly like that the underlying notes are ordinary Markdown files rather than being locked inside a proprietary database.

Web Browsing

Zen Browser

Zen is a privacy-focused browser built around a highly customisable interface.

I like its emphasis on keeping the browser interface calm and unobtrusive, particularly when I have a large number of tabs open while researching or developing.

Utilities

LocalSend

LocalSend is a free and open-source application for transferring files directly between nearby devices over a local network.

It removes much of the friction from moving files between computers, phones and tablets without needing cloud storage, accounts or cables.

General Software Development

Zed

Zed is a high-performance code editor from the creators of Atom and Tree-sitter.

It is my primary editor. I particularly like its speed and minimal interface, which keeps the editor focused on the code rather than surrounding it with unnecessary UI.

Ghostty

Ghostty is a fast, GPU-accelerated terminal emulator designed to provide a native desktop experience while retaining a rich set of terminal features.

A terminal is one of the applications I spend the most time using during development, so responsiveness and a clean interface matter considerably.

GitHub

GitHub is critical to my workflow. It gives me confidence that my code is stored somewhere safe, versioned and easy to recover.

Godot and GitHub also work very well together, making version control a natural part of the development process.

Preferred Web Development Stack

My preferred development stack is deliberately fairly small. I prefer tools that solve a particular problem well without introducing unnecessary abstraction or ceremony.

React

React is my preferred library for building component-based user interfaces.

Its component model provides a useful balance between composition, state and reusable UI without dictating the architecture of an entire application.

TypeScript

TypeScript adds static typing to JavaScript.

I use TypeScript for essentially all serious JavaScript development. Good types make refactoring safer, improve editor tooling and make the intent of APIs much clearer.

TanStack Start

TanStack Start is a full-stack React framework built around TanStack Router, providing features such as server-side rendering, streaming and server functions.

I like its relatively explicit approach to application architecture and its close integration with the rest of the TanStack ecosystem.

TanStack Query

TanStack Query provides tools for fetching, caching, synchronising and updating asynchronous server state.

It removes a large amount of repetitive data-fetching logic while keeping server state separate from ordinary client-side application state.

Zustand

Zustand is a small and deliberately uncomplicated state-management library.

I prefer it when application state genuinely needs to be shared globally because it introduces very little boilerplate and does not require adopting a large architectural framework.

CSS Modules

CSS Modules provide locally scoped class and animation names while allowing stylesheets to remain ordinary CSS.

I prefer writing modern CSS directly rather than introducing a styling abstraction. CSS Modules give components sensible isolation while allowing me to use the full capabilities of the platform.

Biome

Biome provides formatting, linting and related tooling for JavaScript, TypeScript, JSX, JSON, CSS and other web-development formats.

I like having formatting and linting handled by one fast tool rather than maintaining several overlapping utilities.

Playwright

Playwright is a browser automation and end-to-end testing framework supporting Chromium, Firefox and WebKit through a common API.

I use it for testing behaviour from the perspective of an actual browser, particularly workflows that cannot be adequately covered by unit tests alone.

Vitest

Vitest is a fast testing framework designed around the Vite ecosystem.

It is my preferred choice for unit and integration testing in modern TypeScript projects because it integrates naturally with the same tooling used by the application itself.