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 dev
andphp artisan horizon
automatically 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.
The free version is enough for my needs, as it's easy enough to install and run my own MySQL/PostgreSQL instances without needing to pay for Herd to do it for me.
-
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.
-
OWC 11-Port Thunderbolt Dock
I looked at a lot of docks, and I've found that the OWC 11-Port Thunderbolt Dock does an amazing job for a docking station. It's not the cheapest dock, but it has everything I was looking for in a docking station.
I'm able to connect both my monitors, my external drive for backups, ethernet, and more all with a single cable running to the MacBook. As a plus, it also charges the MacBook at the same time.
-
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.
-
LG 32UN500-W 32-Inch Monitor x2
While at the office, I'm usually docked and use two 32" monitors from LG in addition to the built-in screen from the MacBook. Here's the link to buy them.
-
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.
-
Epomaker x Aula F99 Keyboard
By far the best mechanical keyboard I've ever used. The Epomaker x Aula F99 Keyboard looks and sounds amazing out-of-the-box.
However, I chose to put in Gateron Baby Kangaroo tactile switches, along with some KBD Fans Retro Doubleshot PBT Keycaps. I love how the baby kangaroo switches sound and feel, and the retro keycaps paired nicely with this board in my opinion.
My only complaint with this board is how much it flexes when changing out the switches.
-
Logitech MX Master 3s Mouse
Even when not docked, I still prefer an external mouse for most operations. I really love the Logitech MX Master 3s mouse. For me, it feels great to hold, and it also provides support for some macOS gestures like swiping up for mission control.
-
Samsung 1 TB Portable SSD T7 Touch
For my time machine backups, I use the Portable SSD T7 Touch external ssd from Samsung.
-
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 7. Now I feel naked if I leave home without wearing it.
-
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.
-
Laravel Desk Pad
I like a big desk pad and when I can I try to support Laravel, so of course I was going to buy Laravel Desk Pad when I found it. The quality and size of the pad are great and worth every penny.
-
Laptop Messenger Bag
For transporting the MacBook between home and the office, this messenger bag works nicely and has plenty of room for accessories.
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.
-
ChatGPT App
Having a desktop app to use for my ChatGPT needs is just more convenient than having to always navigate to the website when I need AI for something.
-
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.