Uses / setup
Things I use to make
other things.
Hardware, software, languages, editors and an unnecessarily complicated collection of Linux configurations.
Last updated / 2026
At a glance
The short version.
Hardware
The machines I spend most of my time staring at.
MacBook Air M4
daily driverMy main machine. Used for development, design, writing, and pretty much everything else.
Dell Latitude E5450
linux boxMy Linux machine and designated distro-testing victim. Usually running whatever distribution I decided looked interesting that week.
Android
mobilePrimary mobile platform for testing the React Native and Expo apps I build.
Development
What usually ends up inside the editor.
TypeScript
My default language for most web and application development.
Next.js
What I usually reach for when building full-stack web applications.
React Native + Expo
My preferred setup for building mobile applications without maintaining completely separate codebases.
Bun
My JavaScript runtime and package manager of choice instead of Node/npm for most projects.
Firebase
Usually my choice when I need authentication, databases, or a backend quickly.
Tailwind CSS
The styling approach behind most of the interfaces I build.
Languages
Languages I use, or occasionally convince myself to learn.
JavaScript / TypeScript
primaryWhere I spend most of my development time.
Python
Bots, scripts, automation, APIs, and things that don't need a frontend.
Rust
For when I want the compiler to explain why all of my assumptions were wrong.
C
Mostly for lower-level programming and remembering that memory does, in fact, exist.
Editor + terminal
Where the actual typing happens.
VS Code / VSCodium
My practical everyday editor for larger web and application projects.
Neovim
Something I keep configuring, breaking, rebuilding, and occasionally even using to edit files.
Ghostty
My terminal emulator of choice. Fast, minimal, and configurable enough to keep me occupied.
Git
Version control, backup system, and occasionally the reason I have to search how to undo something.
Operating systems
A suspiciously unstable definition of 'my setup'.
macOS
mainMy main operating system on the MacBook. Stable enough that I can spend my configuration energy somewhere else.
NixOS
The Linux distribution that turned configuring my computer into an entire programming project.
Linux Mint
What I use when I remember that an operating system can simply work without requiring a rebuild command.
Linux rabbit hole
Things that have consumed an unreasonable number of weekends.
Hyprland
My preferred Wayland compositor when I'm in the mood to configure every pixel myself.
Nix + Home Manager
Declarative system and user configuration. Extremely satisfying once everything finally evaluates.
Dotfiles
Configuration files that have probably been rewritten more times than some of my actual projects.
Rofi
Launcher, scripts, search utilities, and whatever other small interface I decide to turn it into.
Desktop archive
A few previous forms my desktop has taken before I inevitably changed everything again.
01Hyprland
NixOS / WaylandMy Hyprland setup on NixOS. Tiling, a custom status bar, transparent windows, and considerably more configuration than was necessary.
02GNOME
NixOS / GNOMEAn earlier GNOME setup on NixOS. A little more conventional, although apparently I still couldn't leave the desktop alone.
Tools + services
The supporting cast.
GitHub
Code hosting, version control, project graveyard, and evidence that I do occasionally finish things.
Vercel
Where most of my Next.js projects end up deployed.
Figma
For interface design and figuring out what something should look like before arguing with CSS.
Docker
Containers when 'it works on my machine' stops being a convincing deployment strategy.
None of this is permanent.
Especially the Linux distro.
Tools are tools. I use whatever makes sense for what I'm building, then inevitably spend three hours configuring something that was already working.