Uses
Hardware, software, and gear I use daily for development, content creation, and running my homelab.
This is a living document - I update it as my setup evolves. Things get swapped out, new tools earn a permanent spot, and old favorites get retired. If something here looks outdated, it probably means I haven't gotten around to updating this page yet.
Last updated: September 2026

ls hardware/
computer & monitors
14" MacBook Pro M5 Max - my work laptop. 18-core CPU, 32-core GPU, 36 GB of memory, 2 TB SSD. Plenty of headroom for Docker, multiple IDEs, and running local AI models.
14" MacBook Pro M5 Pro - my personal laptop, with 24 GB of memory. Having two machines means I can move between my desk and the recording studio without unplugging anything.
Monitors - ThinkVision P27h-10 27" QHD (right) + Dell U3417W 34" 4K (left). If I were buying today, I'd go ultrawide.
Ergotron LX Dual Monitor Arm - lets me reposition monitors based on what I'm working on and frees up desk space for hardware projects.
Dell Universal Dock D6000 - bought used on eBay for under $100. Single USB-C cable for power, monitors, and all USB accessories.
input & peripherals
Razer DeathAdder Chroma - gaming mouse.
Apple Magic Trackpad 2 - for swipe and pinch controls.
Razer Goliathus Extended Chroma - mousepad with RGB backlighting.
Elgato Stream Deck - I use this more for productivity shortcuts than streaming. Muting/unmuting in Zoom, launching common workflows, and triggering Home Assistant scenes from my desk.
keyboards

Vortexgear Race 3 - with Cherry MX Clear switches.
Custom Vortex POK3R - wood case, Cherry MX Blue switches, custom keycap set from WASD Keyboards. I like clicky switches - Blues are the loudest and clickiest. I'd recommend Clears as a good starter switch.
desk & audio
Standing Desk - custom-built IKEA desktop on industrial black steel legs, with a Luna Standing Desk Stool.
Sony MDR7506 - professional headphones with upgraded velvet pads. Affordable, comfortable, and sound great.
Philips Hue Play - White & Color Ambiance LED Bar Lights (2-Pack) for desk backlighting.
Aranet4 - CO2 monitor on my desk. When the number climbs, I start getting foggy, so it's my cue to open a window or take a break.
WiiM Pro - plays music in my office. It's cheaper than Sonos or Bose multi-room systems, and in my opinion better integrated. I love it.
Home Assistant Voice Preview Edition - I swapped out all of my Amazon Alexas for these. Voice processing runs locally, not in Amazon's cloud. I wrote about what it's like replacing Alexa if you want to learn more.
camera, mic & lighting
OBSBOT Tiny 2 - 4K AI-powered webcam with gesture control and auto-tracking. Replaced my Sony A6600 - much simpler setup for Zoom calls and recordings.
Elgato Wave:3 - USB condenser mic, managed through Wave Link for mixing. Replaced the Blue Yeti - much better sound and integrates with the Elgato ecosystem.
Elgato Key Lights (x2) - key and fill light for calls at my desk.

ls recording/
recording studio
I built a mini recording studio in a corner of my office. It's a second, fully separate setup from my main desk, so I can walk over, plug in one cable, and start recording without tearing anything down.


Sony ZV-E10 - mirrorless camera with the 16-50mm kit lens, and the main camera in the studio. It feeds the Mac through an Elgato Cam Link 4K and runs on wall power through a Kimaru dummy battery, so it never dies halfway through a take.
Elgato Prompter - teleprompter with a built-in screen. The camera sits behind the glass, so I can read a script and still look into the lens.
Elgato Wave Low Profile Mic Arm (x2) - one holds the mic in an Elgato Wave Shock Mount, the other holds the camera and prompter. Both clamp to the desk, so the whole rig moves as one unit when I shuffle the room around for a better shot.
NEEWER NS4S Softboxes + SMALLRIG Light Stands - softboxes over my LED panels for soft key and fill light. The stands fold down small and are easy to move when I reposition the camera. An orange mushroom floor lamp sits in the background because it looks good on camera.
FLEXISPOT E6 MAX + HON Ignition 2.0 - 48x24 acacia dual-motor standing desk and an ergonomic mesh chair. A WORKLION cutting mat covers the desk and doubles as a work surface for crafts and hardware projects.
Anker Prime TB5 Dock - 14-in-1 Thunderbolt 5 dock. One cable and the laptop is plugged into everything in the studio.
recording software
Camtasia - my go-to for editing tutorial videos. Not as powerful as Premiere, but way faster for the record-edit-export workflow I need for tech content.
Screen Studio - makes screen recordings look polished with auto-zoom and smooth cursor following. I use this for short social media clips and demo GIFs.
Xnip - screenshot tool with annotations and scrolling capture. The scrolling capture is the killer feature - great for grabbing full terminal output or long web pages for blog posts.
ls dev-tools/
editors
Visual Studio Code - still my primary editor. Monokai theme + vscode-icons.
ai tools
Claude Code (CLI) - my primary coding companion. I use it in the terminal for everything from infrastructure automation to building this website. It manages my homelab, writes deployment scripts, and helps debug across 40+ containers. I wrote about building a Claude Code blog skill for this site.
Claude desktop app - writing, research, and brainstorming.
superwhisper - local speech-to-text, great for dictating docs and messages.
terminal
iTerm2 - with Oh My Zsh and Powerlevel10k theme. Plugins: git, z, zsh-autosuggestions, zsh-syntax-highlighting.
Dotfiles - config files managed with chezmoi.
productivity
Raycast - replaced Spotlight and Alfred. I use it for clipboard history, snippet expansion, window management scripts, and quick calculations. The extensions ecosystem is what sold me.
Vorssaint - free, open-source menu bar app that bundles a pile of small macOS utilities into one. I'm all in on it across every Mac I own - it makes macOS cleaner and better for me, and I only install the modules I actually use.
Magnet - keyboard-driven window snapping. I use thirds layout constantly with the dual monitor setup - editor left, terminal right, browser on the second screen.
Notion - personal knowledge base, talk prep, and blog drafts. I tried Obsidian but kept coming back to Notion for the database views and sharing.
LanguageTool (self-hosted) - grammar and spell checking that runs on my homelab instead of someone else's servers. Catches the typos in blog posts and emails without shipping my drafts to the cloud.
communication & media
Rambox - all messaging clients in one app.
Postiz - self-hosted social media scheduling (replaced Buffer).
security & utilities
1Password - password manager (+ self-hosted Vaultwarden as backup).
Tailscale - mesh VPN for accessing homelab remotely.
Private Internet Access - commercial VPN for privacy on public networks.
Docker Desktop - local container development. I test homelab configs here before deploying to Proxmox.
Hidden Bar - hides menu bar clutter. With Docker, Tailscale, 1Password, and a dozen others up there, I'd go insane without it.
ls homelab/
I run a two-node Proxmox VE cluster with about 70 self-hosted services. Nearly all of them are immutable LXC containers defined in OpenTofu, so every change goes through tofu apply instead of SSH. The full story is in my homelab two years later and how I made it immutable with OpenTofu. If you're just starting out, read my guide to getting started with a homelab.

server hardware
prxbox1 - Dell PowerEdge R730 - 2x Intel Xeon E5-2698 v4 (80 threads), 128 GB DDR4 ECC, NVIDIA Quadro RTX 4000 (8 GB). The infrastructure node - Home Assistant, networking, monitoring, and the media automation stack.
prxbox2 - Dell PowerEdge R730 - 126 GB RAM, NVIDIA RTX A4000 (16 GB). The GPU node - Plex, Immich, transcoding, and local LLMs.
Networking between them - Intel X710 10 Gb SFP+ NICs in 2x10G LACP bonds on each host, and a Raspberry Pi as the QDevice tiebreaker vote for the cluster.
2x CyberPower OR1500PFCRT2U - rack UPSes, monitored with NUT so the cluster shuts down cleanly when the power goes out.
gpu workloads
RTX A4000 (16 GB) - Plex hardware transcoding, Immich face and object detection, Tdarr, and local LLMs through Ollama and llama.cpp. I wrote about sharing one GPU across multiple services.
Quadro RTX 4000 (8 GB) - Frigate object detection for the security cameras, a Tdarr node, and Wyoming Whisper for local speech-to-text.
storage & backup
Synology DS418play - 4-bay NAS serving NFS to the containers for media, photos, documents, and backups.
Proxmox Backup Server - daily snapshots of every container and VM, stored on the NAS and synced offsite to Backblaze B2 with rclone.
networking
UniFi Cloud Gateway Ultra - router and firewall across 4 VLANs (Default, Guest, IoT, Cameras). IoT and cameras stay isolated.
MikroTik CRS317 - 10G backbone switch, 20 Gbps to each server. A UniFi US-24 handles the 1G devices.
2x UniFi U7 Pro + U7 Pro XG - WiFi 7 access points.
AdGuard Home - DNS-level ad blocking, with a primary container and a replica on a Pi kept in sync.
Nginx Proxy Manager + CrowdSec - reverse proxy with SSL, so every service gets a clean local domain.
services (~70)
Media - Plex, Tautulli, the Arr stack (Sonarr, Radarr, Lidarr, Prowlarr, Bazarr), Tdarr, Kometa, Audiobookshelf, and Lyrion Music Server for the WiiM speakers.
Photos & documents - Immich (replaced Google Photos), Paperless-ngx + Paperless-AI, and Syncthing for file sync.
Local AI - Ollama, llama.cpp, LiteLLM as a single API gateway, and Wyoming Whisper for the voice assistant.
Home - Home Assistant, Frigate NVR, and Zigbee2MQTT - more on that below.
Security & access - Authentik for SSO, Vaultwarden, Tailscale, and Cloudflare DDNS.
Monitoring - Grafana, Prometheus, Loki, Alertmanager, Uptime Kuma, Healthchecks, and Scrutiny for disk health.
Everything else - Plausible Analytics, LanguageTool, Postiz, and the server that hosts this site.
ls smart-home/
My smart home runs on Home Assistant with 128 automations, all processed locally on my homelab. I've been running it since 2016, and I wrote up my favorite Home Assistant automations, basic to advanced, plus how I keep them from breaking. If you're new, start with getting started with Home Assistant. I also wrote about how I replaced Alexa with local voice control.
core platform
Home Assistant OS - running as a VM on Proxmox with a dedicated MariaDB database.
Zigbee2MQTT - 29 Zigbee devices on a ConBee II, no proprietary hubs. I'm staying on Zigbee rather than moving to Matter.
Frigate - local NVR with person detection and face recognition on a GPU. It drives motion lighting and package detection.
Local voice and AI - Wyoming faster-whisper on a GPU, Piper for text-to-speech, and Ollama through the AI Task integration, with 4 Home Assistant Voice Preview Edition satellites.
HACS - kept to the few custom integrations that earn it, like Alarmo and Presence Simulation.
Apple HomeKit bridge - exposes key entities to Siri.
dashboards
Custom Lovelace dashboards for different form factors - desktop overview, phone, and tablet views. Built with community cards:
devices
lighting & climate
- Philips Hue lights on a Hue Bridge Pro, with Hue motion sensors and dimmers
- Lutron Aurora dimmers and Zigbee buttons
- 2x ecobee3 lite thermostats with room sensors
- Levoit humidifier (winter only)
security & safety
- Reolink video doorbell and floodlight camera
- Tapo C210 indoor camera
- 4x Aqara leak sensors and a Heiman smoke detector
- Zigbee door contacts, an Aqara FP2 presence sensor, and an Aranet4 CO2 monitor
audio
- 4x Audio Pro A10 MkII speakers running WiiM firmware
- WiiM Pro and WiiM Mini
- Multi-room audio through Lyrion Music Server and Music Assistant
other
- 2x Roomba vacuums
- Meross garage door opener
- Sengled and Securifi Zigbee plugs (energy monitoring)
- Prusa MK3 3D printer through OctoPrint
- Hue Play HDMI Sync Box and a Broadlink IR blaster
$ apt list --installed
joe-hardware/stable
├──macbook-pro-14-m5-max/stable work 36GB arm64[installed]
├──macbook-pro-14-m5-pro/stable personal 24GB arm64[installed]
├──thinkvision-p27h-10/stable 27" QHD[installed]
├──dell-u3417w/stable 34" 4K[installed]
├──ergotron-lx-dual-arm/stable 2.0 amd64[installed]
├──dell-dock-d6000/stable USB-C universal[installed]
├──razer-deathadder-chroma/stable gaming-mouse[installed]
├──apple-magic-trackpad-2/stable multi-touch[installed]
├──razer-goliathus-extended-chroma/stable RGB mousepad[installed]
├──vortexgear-race-3/stable cherry-mx-clear[installed]
├──vortex-pok3r-custom/stable cherry-mx-blue[installed]
├──standing-desk-ikea-custom/stable industrial-legs[installed]
├──sony-mdr7506/stable velvet-pads[installed]
├──philips-hue-play-bars/stable 2-pack RGB[installed]
├──aranet4/stable co2-monitor[installed]
├──wiim-pro/stable office-audio[installed]
└──ha-voice-pe/stable local-voice[installed]
joe-recording/stable
├──sony-zv-e10/studio mirrorless 16-50mm[installed]
├──elgato-cam-link-4k/studio hdmi-capture[installed]
├──kimaru-np-fw50-dummy/studio ac-power[installed]
├──elgato-prompter/studio teleprompter[installed]
├──elgato-wave-mic-arm-lp/studio x2 boom-arm[installed]
├──elgato-wave-shock-mount/studio isolation[installed]
├──neewer-ns4s-softbox/studio soft-light[installed]
├──smallrig-light-stand/studio 6.23ft[installed]
├──mushroom-floor-lamp/studio orange 63in[installed]
├──flexispot-e6-max/studio acacia dual-motor[installed]
├──worklion-cutting-mat/studio 24x36 self-healing[installed]
├──hon-ignition-2/studio mesh-chair[installed]
├──anker-prime-tb5-dock/studio thunderbolt-5[installed]
├──obsbot-tiny-2/stable 4K AI-webcam[installed]
├──elgato-wave3/stable USB-condenser[installed]
├──elgato-stream-deck/stable productivity[installed]
├──camtasia/stable video-editing[installed]
├──screen-studio/stable screen-recording[installed]
├──xnip/stable screenshots[installed]
└──elgato-key-lights/stable x2 studio-LED[installed]
joe-software/stable
├──visual-studio-code/stable monokai-theme[installed]
├──claude-code-cli/stable coding-companion[installed]
├──claude-desktop/stable writing-research[installed]
├──superwhisper/stable speech-to-text[installed]
├──iterm2/stable oh-my-zsh+powerlevel10k[installed]
├──raycast/stable launcher[installed]
├──vorssaint/stable menu-bar-utils[installed]
├──magnet/stable window-manager[installed]
├──notion/stable knowledge-base[installed]
├──languagetool/stable self-hosted[installed]
├──rambox/stable messaging-hub[installed]
├──1password/stable password-manager[installed]
├──tailscale/stable mesh-VPN[installed]
├──private-internet-access/stable commercial-VPN[installed]
├──docker-desktop/stable containers[installed]
└──hidden-bar/stable menu-bar-cleanup[installed]
joe-homelab/stable
├──proxmox-ve/stable 2-node cluster[installed]
├──dell-poweredge-r730-prxbox1/stable 80-threads 128GB-ECC[installed]
├──dell-poweredge-r730-prxbox2/stable GPU-node 126GB[installed]
├──nvidia-quadro-rtx-4000/stable 8GB-VRAM[installed]
├──nvidia-rtx-a4000/stable 16GB-VRAM[installed]
├──intel-x710-sfp-plus/stable 2x10G LACP[installed]
├──cyberpower-or1500pfcrt2u/stable x2 NUT[installed]
├──synology-ds418play/stable 4-bay NAS[installed]
├──proxmox-backup-server/stable daily + B2-offsite[installed]
├──unifi-cloud-gateway-ultra/stable router 4-VLANs[installed]
├──mikrotik-crs317/stable 10G-backbone[installed]
├──unifi-us-24/stable 1G-access[installed]
├──unifi-u7-pro/stable x2 WiFi-7[installed]
├──unifi-u7-pro-xg/stable WiFi-7[installed]
├──adguard-home/stable DNS primary+replica[installed]
├──nginx-proxy-manager/stable reverse-proxy + crowdsec[installed]
└──opentofu/stable immutable-LXC[installed]
joe-homelab-services/stable
├──plex/stable media-server[installed]
├──tautulli/stable plex-stats[installed]
├──sonarr/stable tv[installed]
├──radarr/stable movies[installed]
├──lidarr/stable music[installed]
├──prowlarr/stable indexers[installed]
├──bazarr/stable subtitles[installed]
├──tdarr/stable GPU-transcoding[installed]
├──kometa/stable plex-collections[installed]
├──audiobookshelf/stable audiobooks[installed]
├──lyrion-music-server/stable multi-room-audio[installed]
├──immich/stable photos[installed]
├──paperless-ngx/stable document-OCR[installed]
├──paperless-ai/stable auto-tagging[installed]
├──syncthing/stable file-sync[installed]
├──ollama/stable local-LLM[installed]
├──llama-cpp/stable local-LLM[installed]
├──litellm/stable API-gateway[installed]
├──wyoming-whisper/stable speech-to-text[installed]
├──home-assistant/stable smart-home[installed]
├──frigate-nvr/stable object-detection[installed]
├──zigbee2mqtt/stable zigbee-bridge[installed]
├──authentik/stable SSO[installed]
├──vaultwarden/stable passwords[installed]
├──tailscale/stable mesh-VPN[installed]
├──cloudflare-ddns/stable dynamic-DNS[installed]
├──grafana/stable dashboards[installed]
├──prometheus/stable metrics[installed]
├──loki/stable logs[installed]
├──alertmanager/stable alerts[installed]
├──uptime-kuma/stable uptime[installed]
├──healthchecks/stable cron[installed]
├──scrutiny/stable disk-health[installed]
├──plausible/stable analytics[installed]
├──languagetool/stable grammar[installed]
├──postiz/stable social-scheduling[installed]
└──.../stable and ~35 more[installed]
joe-smart-home/stable
├──home-assistant-os/stable VM proxmox 2026.9[installed]
├──zigbee2mqtt/stable conbee-ii 29-devices[installed]
├──frigate-nvr/stable face-recognition[installed]
├──wyoming-whisper/stable local-STT GPU[installed]
├──piper/stable local-TTS[installed]
├──ai-task-ollama/stable local-vision[installed]
├──voice-preview-edition/stable x4 satellites[installed]
├──hacs/stable community-store[installed]
├──alarmo/stable security-system[installed]
├──presence-simulation/stable vacation-mode[installed]
├──apple-homekit-bridge/stable siri[installed]
├──philips-hue/stable bridge-pro motionaware[installed]
├──lutron-aurora/stable dimmers[installed]
├──ecobee3-lite/stable x2 thermostats[installed]
├──reolink-doorbell/stable video[installed]
├──reolink-floodlight/stable outdoor[installed]
├──tapo-c210/stable indoor-camera[installed]
├──aqara-leak-sensors/stable x4[installed]
├──aranet4/stable co2-monitor[installed]
├──audio-pro-a10-mkii/stable x4 wiim-firmware[installed]
├──wiim-pro/stable multi-room-audio[installed]
├──wiim-mini/stable multi-room-audio[installed]
├──lyrion-music-server/stable multi-room-audio[installed]
├──roomba/stable x2[installed]
├──meross-garage-opener/stable garage[installed]
├──prusa-mk3/stable octoprint[installed]
└──hue-play-hdmi-sync-box/stable ambient-TV[installed]
96 packages listed.