Hardware
My main machine is a MacBook Pro 14" with the M5 Pro chip — 20-core GPU, 64 GB of unified memory, and 1 TB of storage. It handles everything I throw at it: Docker containers, local databases, multiple IDEs, and the occasional compile-heavy project without breaking a sweat.
At my desk the MacBook sits on a Rain Design mStand connected to an Apple Studio Display, which is the only monitor I need. The 5K panel is sharp enough that I never think about pixels, and the built-in camera and speakers are good enough that I don't bother with extras for video calls.
For input I use the full Apple wireless trio:
- Apple Magic Keyboard (US layout) — I like the consistency of having the same key feel whether I'm docked or on the go.
- Apple Magic Trackpad — my primary pointer; I prefer gestures over mouse for most navigation.
- Apple Magic Mouse — sits to the right for when I need precision scrolling or just want to switch things up.
A BenQ ScreenBar sits on top of the Studio Display for ambient desk lighting without screen glare. For calls there's a Snom 735 IP phone on the desk, and I keep a pair of AirPods 3 handy for video calls. For music and deep focus I wear AirPods Max — usually running Endel for adaptive soundscapes while coding. I track focus sessions with the Flow pomodoro app.
My phone is an iPhone 13 mini — I like the small form factor and have no reason to upgrade.
For paperless document management I use a Fujitsu ScanSnap iX500 scanner, feeding everything into DEVONthink for archival and search.
My home network runs on Ubiquiti UniFi gear — a UniFi 6 access point and a UniFi Cloud Gateway Max as the router/controller.
I sit in a Herman Miller Aeron — the investment was worth it years ago and my back agrees. The desk is an Ergotopia Desktopia Pro X (180 cm) sit/stand desk. I try to alternate between sitting and standing a few times a day, with a Blackroll Smoove Board underfoot for the longer standing stretches.
Audio & video production
I record dev content and the occasional tutorial, so I've built out a small studio setup over time. The audio chain starts with a Røde RODECaster — it handles mixing, processing, and recording in one box.
For video work, the microphone is a Røde NTG5 shotgun mic, mounted on a Røde PSA1 boom arm to keep it out of frame but close enough for clean audio. For podcasting and voiceover I use a Røde Procaster dynamic broadcast mic on a Røde desk stand, held in a Røde PSM1 shock mount with a Røde WS2 windscreen. Both mics feed into the RODECaster.
On the road — customer visits, conferences, interviews — I grab a Røde Wireless Go II paired with a Røde Lavalier Go clip-on mic. Compact enough to toss in a bag, and the audio quality holds up surprisingly well for a portable setup.
On the camera side I shoot with a Sony ZV-E10, fed into a Blackmagic ATEM Mini Pro for live switching and clean HDMI output. I use an Elgato Prompter to keep eye contact while reading scripts.
For lighting:
- Amaran 100d — key light, topped with an Aputure Light Dome SE softbox for a nice, diffused look.
- Amaran 100d — hair light, adding separation from the background.
- Amaran P60x — fill light panel.
All of it is rigged on Manfrotto gear — Autopoles, Super Clamps, Magic Arms, and the like. It's more gear than I expected to accumulate, but it makes a real difference in production quality.
Editor / IDE
PhpStorm is my daily driver. I use a custom light theme called Light Lite — a minimal, white-background scheme with blue keywords, green functions, red classes, and yellow search highlights. It's loosely inspired by Google's color palette and pairs nicely with MonoLisa. For inline completions I run GitHub Copilot inside PhpStorm.
Font
MonoLisa — a coding font that's easy on the eyes for long sessions.
Terminal
Ghostty as the terminal emulator, running zsh with vi mode enabled. The prompt is Starship and shell history is powered by Atuin (replaces Ctrl-R). Plugins are managed through Zinit — syntax highlighting, autosuggestions, history-substring-search, and fzf-tab. I use the Nord color scheme across all terminal apps.
I use tmux
with tmuxifier
here and there, but mostly I rely on multiple Ghostty windows managed by AeroSpace
— especially when running several Claude Code sessions side by side.
I also have a small scratch() function that opens
micro
for quick timestamped notes right in the same terminal window where Claude Code is running.
CLI tools I reach for
I've replaced most of the default Unix tools with modern alternatives:
- eza
- file listing with git status and tree view
- bat
- syntax-highlighted file viewing
- ripgrep
- fast search
- fd
- simpler file finding
- dust
- disk usage visualization
- duf
- disk free
- procs
- process viewer
- doggo
- DNS lookups
- jaq
- JSON processing (Rust rewrite of jq)
- btop
- system monitor
- fzf
- fuzzy finder, integrated everywhere
- zoxide
- smarter cd that learns your habits
- thefuck
- corrects your previous command
- yazi
- terminal file manager
- httpie
- HTTP client for API testing
- lazygit / lazydocker
- TUI dashboards for git and Docker
- glow
- render markdown in the terminal
- tealdeer
- fast tldr pages
- hyperfine
- command benchmarking
- tokei
- code statistics
- k6 / siege
- load testing
Git
Tower as my Git GUI. On the CLI I use lazygit for quick staging and interactive rebases, delta for side-by-side diffs with Nord syntax highlighting, gh for GitHub operations, and Kaleidoscope as my diff/merge tool. Commits are SSH-signed via the 1Password SSH agent. I also have custom Claude Code commands for commits and other workflows.
Dotfiles
My configuration files are version-controlled at github.com/freerich/dotfiles. PhpStorm theme, Ghostty config, zsh setup, AeroSpace layout — it's all in there.
Backend / API tooling
Languages & frameworks
PHP is my primary language — I keep multiple versions installed (8.1 through 8.6) managed through mise and shivammathur/php. The framework is Symfony with the Symfony CLI for local development. Composer for dependency management, Xdebug and PCOV for debugging and code coverage.
On the frontend side: Node, Yarn, and Tailwind CSS when needed.
Task automation: Just — a modern alternative to Make.
Databases
TablePlus as the database GUI client. PostgreSQL tools (psql, pg_dump) are on the PATH.
API & HTTP tools
HTTPie for testing APIs from the terminal.
Containers & infrastructure
Podman for containers (instead of Docker). Dokku for self-hosted PaaS deployments. Platform.sh CLI for cloud hosting.
Backups
BorgBackup with Vorta as the GUI frontend.
macOS apps
Productivity
- AeroSpace — tiling window manager with a dedicated workspace layout for dev projects, each paired with a Claude Code window.
- Apple Notes — for quick notes and reference material. It syncs everywhere and gets out of the way.
- Things — task management, coming from OmniFocus. Simpler, cleaner, and the keyboard shortcuts are great.
- Apple Shortcuts — for automating repetitive workflows across macOS and iOS.
- Apple Calendar — does the job, syncs across devices.
Communication
- Apple Mail — I dropped third-party email clients and went back to the default. It's fast and reliable enough.
- Apple Contacts — syncs across devices and integrates well with Mail and Calendar.
- Slack — for team and community chat.
- Google Workspace (Meet, Chat, Drive) — the Zeitgeist Technologies stack for team communication and collaboration.
Design & diagrams
- MindNode — for brainstorming and mind mapping.
- OmniOutliner — for structured outlining and organizing thoughts.
- Inkscape — open-source vector graphics editor.
- Excalidraw — hand-drawn style diagrams and sketches.
- Midjourney — AI image generation.
Office & docs
- Apple Keynote — for presentations.
- Microsoft Word — when clients or collaborators need
.docx. - Google Sheets — shared spreadsheets and quick data collaboration.
Utilities
- 1Password — password manager for everything. I use the browser extension and the SSH agent integration.
- CotEditor — lightweight plain text editor for quick edits outside of PhpStorm.
- Reeder — RSS reader for keeping up with dev blogs and tech news.
- MacWhisper — voice-to-text using a local Parakeet v3 model.
- Hazel — automated file organization rules.
- Karabiner-Elements — keyboard customization to get German umlauts on a US layout.
- Espanso — text expander for snippets and shortcuts.
- KeyCastr — displays keystrokes on screen, handy for recordings and demos.
- Amphetamine — keeps the Mac awake when needed.
- Hush — blocks cookie banners in Safari.
- DeepL — translation tool.
- Maccy — clipboard manager.
- KeyClu — hold ⌘ to discover keyboard shortcuts for the current app.
- JankyBorders — window border highlights, pairs with AeroSpace.
- WireGuard — VPN.
AI / LLM tools
For research and thinking through problems I use Perplexity, Claude, and ChatGPT — each has its strengths depending on the task.
For coding I rely on Claude Code and Codex.
Last updated March 2026. If you have questions about anything on this page, feel free to reach out — I'm always happy to talk about tools and workflows.