Having the right setup makes all the difference when it comes to staying focused and productive. Below you'll find an overview of my current hardware, development environment, productivity apps and other tools that I use and find useful in my daily workflow.
Any images on this page can be clicked on to view a larger version of them.
This page may contain affiliate links and I may earn a small commission when you click on the links at no additional cost to you.
Development tools
-
Warp Terminal
My preferred terminal to use is warp.
Lately I've been using the "Cherry" theme, which is a custom theme from Warp. The font I use is Source Code Pro for Powerline. I also use several custom aliases and functions.
All my terminal settings are saved in my dotfiles repository. If you want the same environment, you can follow the installation instructions of the repo. I do recommend forking and customizing the installation script to fit your needs, however. It's actually pretty easy and straightforward to setup my terminal now that I don't need to install custom z-shell's like oh-my-zsh. Most of the configuration is easily done within the Warp settings, and everything else is handled in my zsh profile.
-
PhpStorm
PhpStorm is still my IDE of choice. I've tried many others in the past including Visual Studio Code, Sublime, or Atom, but I keep coming back to PhpStorm. Here's a screenshot of my editor setup:
I'm using the One Dark Theme with the Vivid color scheme, and I use Fira Code as my editor font.
Since I mostly work on Laravel projects or packages, I usually enable the Laravel Idea plugin. It's a paid plugin, but it's definitely worth the money since it can provide stuff like auto-completions for route names, request fields and more.
To make testing more convenient, I also like to use the Pest Plugin. It makes Pest a first class citizen in the IDE, and as another perk, it's completely free.
I've also found it very helpful to configure tasks to run both
npm run devandphp artisan horizonautomatically when I open projects, so I don't need to keep manually running them. -
Laravel Herd
Using Herd for local development is a no-brainer. In my experience it's made it much easier to manage my sites and local php and node versions, plus it runs each site much faster.
-
Ray
-
TablePlus
In the past, I've used DataGrip from JetBrains to manage my databases. Now, I prefer to use TablePlus, as it is much simpler to use.
-
Helo
For email testing, I love using Helo.
-
Tinkerwell
Another amazing product from BeyondCode, Tinkerwell makes running arbitrary code either locally or even remotely via ssh simple to do.
-
Transmit
Sometimes to connect to S3, FTP and SFTP servers, I like to use Transmit.
Hardware
-
16-inch MacBook Pro — M4 Max — Space Black
I've upgraded a lot of things in my setup in 2024-2025, and now my MacBook is the latest upgrade. I was using a 16-inch MacBook Pro M1 Pro, and now I've decided to get a 16-inch MacBook Pro M4 Max. To be honest, I didn't really need to upgrade, but I really wanted to.
Overall, I'm loving the M4 Max so far, and I've noticed that it does handle certain tasks such as running Pest PHP tests about twice as fast sometimes as the M1 Pro did, which is nice.
This MacBook has the 16‑core CPU, 40‑core GPU version of the M4 Max Chip, as well as 64 GB of RAM, and a 2 TB SSD. While these specs are largely overkill for what I need the MacBook for, I just wanted to basically have the highest-end MacBook Pro for once.
I also opted for the Nano-texture display upgrade with this MacBook, and I'm definitely glad I did. I honestly can't really tell much of a difference between this display and the glossy display on my last MBP, however not having a lot of glare on the screen is very nice in areas where I can't really control the lighting.
-
CalDigit TS5 Plus Dock
When I purchased this dock it cost me $500, so it was not cheap! It has been well worth the cost though, giving me plenty of ports to use and even allowing me to charge accessories without having my MacBook plugged into it.
-
Dell S2725DS 27-Inch Monitor x2
I've been upgrading my home office setup, and these monitors have been part of that upgrade. So far I'm very happy with the picture and color quality of the monitors, and the pricing really wasn't too bad either. Here's the link to buy them.
-
BenQ ScreenBar Halo 2 Light Bar
Using these BenQ light bars allows me to better illuminate my desk at night without having to keep my overhead lights on. What I really like about this light bar is that it can be configured to automatically turn off when I leave the desk.
-
Desk
Another part of my recent office upgrade was the Sanodesk 72x30 Standing Desk. Overall, I love this desk so far. The bamboo top looks and feels great, and I have plenty of room on the desk to set it up how I want to. Being able to raise it to a standing position is also nice too when I get sick of sitting.
-
Monitor Arm
I prefer using monitor arms over the default stand that most monitors come with, and at the end of 2022 I switched to the HUANUO Dual Monitor Stand. It's a single mount with two monitor arms, and it holds the monitors in place nicely. Each arm is flexible in where I can position them.
I was previously using two separate monitor arms, but I felt having one single mount was much nicer and provided me with a cleaner setup.
-
Laptop Mount
To free up desk space and add more flexibility, I added a Crestview Monitor Arm by UPLIFT Desk, paired with their laptop mount.
-
NuPhy Halo IO Series 96 Keyboard
I decided to give NuPhy keyboards a try, and I'm glad I did. This keyboard has become my favorite one to use.
I chose to put in Gateron Baby Raccoon linear switches in this keyboard, and they feel absolutely amazing to type on.
-
Logitech MX Master 4 Mouse
Even when not docked, I still prefer an external mouse for most operations. I really love the Logitech MX Master 4 mouse. For me, it feels great to hold, and it also provides support for some macOS gestures like swiping up for mission control.
-
UniFi UNAS Pro 8
I've been wanting to get a NAS for a while now, so I decided to go all-in and get the UNAS Pro 8 from UniFi. The initial cost was a lot but for me it's been well worth the investment.
Even though the NAS has 8 bays, I only filled 4 of them with 12TB NAS Hard Drives initially, so I still have plenty of room to expand if necessary in the future. I'm using the NAS to store my Time Machine backups on, as well as my media for my Jellyfin server I've been building over the last several months.
-
AirPods Max
I decided to splurge a little bit last year and this one of those purchases. When I want to use over-the-ear headphones, I've been using the (1st Gen) AirPods Max headphones.
-
Apple AirPods Pro 2
When I need headphones, I love using my Apple AirPods Pro.
-
Phone
My current phone is the iPhone 16 Pro Max with 256 GB of storage.
-
Watch
I never was much of a watch person until I bought my Apple Watch Series 10. Now I feel naked if I leave home without wearing it.
-
iPad Pro M4 13-inch
Another one of my splurge purchases from last year is the iPad Pro M4 13-inch model with nano texture glass. It's definitely over-kill for my needs but I love it and that's all that matters.
-
YubiKey 5C NFC
For websites and services that support Webauthn authentication, I use a YubiKey 5C NFC security key. This particular key is nice because it works with both my MacBook and my iPhone without having to use any adapters.
I highly recommend purchasing at least one of these to use a form of two-factor authentication for websites that support it.
-
Anker Wireless Charging Stand
The Anker Wireless Charging Stand provides a convenient way to wirelessly charge my phone at the office, and also acts as a nice stand to keep my phone off the desk. It's MagSafe too, which is a plus.
-
Logitech Z407 Bluetooth Speakers
For the home and the office, I didn't want to go crazy on buying an expensive set of speakers. I went with the Logitech Z407 Bluetooth Speakers for a cheaper solution, but they still sound decent for my needs.
-
Aer City Pack Pro Backpack
A little pricy but this backpack it allows me to comfortably carry basically all my tech and more with me when I'm on-the-go.
Software
-
macOS
For the longest time I was a Windows user, until roughly late 2019 or so when I decided to give macOS Catalina a try. Now that I've been using it for a few years now, I can positively say I wouldn't ever switch back. For me, I love the development experience I get on a mac and the UI simple to work with. It's also great that it just works seamlessly with my other Apple devices.
I like to keep my desktop pretty clean, so I hide the dock by default and never save anything to the desktop itself; not even drives are allowed on my desktop. I also only keep the apps are currently running in the dock and hide the indicator for running apps (that dot underneath each app), because if it's in the dock it's running. Here's a screenshot where I've deliberately moved my pointer down so the dock is shown.
In my dotfiles repo you'll find some of my custom macOS settings.
-
Raycast
I've never liked Spotlight on macOS, and previously I used Alfred as a replacement. However, now I've discovered Raycast. Raycast is my primary mode of navigating through macOS, as I've bound the keyboard shortcut to cmd + space (overriding Spotlight's keybinding).
Some of the extensions I've installed for Raycast include:
- JetBrains Toolbox Recent Projects: Allows me to open up a PhpStorm project from anywhere.
- Laravel Docs: Allows me to search the Laravel Docs from anywhere.
- Tailwind CSS: Allows me to search Tailwind Docs and classes from anywhere.
-
1Password
If you're not using a password manager, you're doing it wrong. I prefer to use 1Password. I honestly don't think I could live without 1Password. Having access to all my vaults across all my devices is also a plus.
-
Backblaze
In addition to time machine backups, I also use Backblaze as an offsite backup.
-
Browser
My browser of choice is Google Chrome, although I occasionally will use Firefox or Safari too. To block ads on certain sites, I use the AdGuard extension.
-
Spark
On both my MacBook and iPhone, I prefer to use the Spark Mail App for handling my emails.
-
Spotify
I'm almost always listening to music either at work or when I'm driving, so Spotify is very nice to have for streaming music.
When I'm just trying to focus, lately I've been listening to either the Coding Mode playlist or the Beats to think to playlist.
-
Bartender
Bartender is a nice little utility that helps manage how the menu bar is laid out for macOS.
-
Showcode
Showcode makes it easy to share beautiful screenshots of code snippets.
-
Alcove
Alcove is a nice little app that turns the notch on the MacBook into a dynamic island, kind of like how it is on the iPhone. It's not quite as versatile as it is on iOS, however it is nice for a quick glance for things like what music is currently playing. In my desktop screenshot above it is shown with the current song from Spotify playing in it.
-
Shottr
Shottr makes manipulating screenshots a lot easier and nicer than the default screenshot functionality provided by macOS. My favorite feature from it is the ability to easily blur out text in my screenshots.
-
Blip
While Airdrop works very well between Apple devices, it can be kind of annoying to transfer files between either my Mac or iPhone and my Windows PC when I need to. The Blip app helps bridge that gap and is free and easy to use. I've actually started using it more often between my Apple devices as well than I use Airdrop now.
-
Codex
I try to not rely on AI a lot for programming, but having an AI agent like Codex is very helpful when I just can't figure out something or I need something repetitive typed out for me.
-
DaisyDisk
DaisyDisk is a nice utility that helps you analyze how your disk space is being used. It's honestly a utility that I should probably use more often.
Miscellaneous
-
Laravel Forge
Laravel Forge is an amazing service offered by the Laravel team to provision and manage servers. I use it for both my personal and work related servers.
-
DigitalOcean
The vps server provider I still use for a lot of projects is DigitalOcean.
-
Hetzner
For some projects I've started to use Hetzner for vps hosting. I've found you can get more powerful servers for a cheaper cost than with providers like DigitalOcean.
-
Google Workspace
I typically will use Google Workspace for both personal and work use to manage mail and calendars for custom domains.
-
Laravel Shift
I've only used Laravel Shift a few times, but each time I did it saved a lot of time upgrading my Laravel projects.
-
Expose
Whenever I need to bring up local sites on my phone or share with someone, I use Expose. It also works perfectly for testing Webhooks for third-party apis.
-
GitHub
GitHub is my preferred development platform. I feel that it provides the best experience for contributors.
-
Flare
To track exceptions in production, I've found Flare to be very helpful.