Bet you’ve never heard of a MacBook Pro before.
Development Software
Code Editor
Visual Studio Code
I begrudgingly use VS Code because so many vital extensions are exclusive to it. It’s bloated, laggy and very Electron, but it’s still where I am most efficient with 90% of my coding.
-
AI Assistant
Github Copilot
Hands-down, my most used AI tool. The contextual knowledge it has and the inline as-I-code UI is just brilliant. It does the grunt work of so much of my coding now.
-
Mono Typeface
Github Monaspace
I change coding typefaces with the wind, but Monaspace has managed to earn a record tenure. Free, thoughtful, and very fun.
-
Theme
Catppuccin Notcis Macchiato / Latte
I first discovered Catppuccin via the Nova theme, and I’ve been all-in on it ever since. I even created custom Warp and Raycast themes to match.
Alt Editor
Nova
A Panic-flavored, Mac-assed editor that I adore. It’s snappy, fun, and very thoughtfully designed. Sadly, the extensions ecosystem hasn’t taken off and it can’t compete with some of VS Code’s QoL features. I use Nova as much as I can, but it’s mostly only when I’m doing static HTML or simple Type/Javascript.
Dev Environment
Laravel Herd
I was on Laravel Homestead for years, but I swapped the day that Herd was released and haven’t looked back. The fact that I very rarely think about my local dev environment is something I already take for granted. It truly just works.
Debugging
Ray
It’s like console.log
for PHP, but far more robust. Absolutely indispensable when I’m working in Laravel. I can easily trace bugs, track data flow, view queries, and way more. The first package I add to any new project.
Database GUI
TablePlus
I’m not spending all day staring at databases, but when I do need to dive into MySQL, TablePlus is everything I need. A beautiful Mac-native design, super fast, and constantly being improved.
Playground
Tinkerwell
Not a daily-use app for me, but as a playground for Laravel work, there’s nothing better. It’s also surprisingly great for doing simple queries and actions in production.
Terminal
Warp
I’m spending more and more of my time in the terminal lately. I was an iTerm guy, then Hyper, but I’ve been all-in on Warp since I discovered it. It has some amazing power-user features that are still very approachable to a CLI journeyman (me).
Interface Design
Figma
Similar to my relationship with VS Code, I use Figma somewhat begrudgingly. It’s bloated and slow (compared to Sketch) but its collaboration features are S-tier, and it’s the tool that every designer I work with uses.
Photo Editing
Pixelmator Pro
When I need to do image manipulation, it does the job fantastically with a gorgeous UI that I honestly wish I had more reason to use.
General Productivity
Launcher
Raycast
I tried Alfred several times and it never stuck. Raycast, au contraire, hooked me on first invoke. Beautiful and well-integrated into macOS, with a powerful and intuitive extension library. I pull it up dozens of times a day, often to quickly chat with any of the AI models they interface with. It’s difficult to articulate just how revolutionary Raycast has been to my workflow.
Hey
I got my Hey.com email address on launch day and have been using it exclusively ever since. We use their business plan for Jill White Fitness as well, and it’s fantastic.
Google Mail
Mimestream
We use G Suite at geniant, but I hate using the Gmail web interface. Thankfully, I rarely have to, because Mimestream is a delightful mail app specifically for Google accounts. This is probably the sixth Gmail client I’ve used over the years, and it’s the best one yet.
Notes
Obsidian
I’m not a big note-taker, but I used Bear as my scratchpad for years. I recently migrated everything over to Obsidian, and I’m still wrapping my head around it. Even for a non-power user like myself, the customization, queries, and deep linking are extremely useful, and I expect I’ll be going pretty deep down the rabbit hole over the coming months.
Weather
Mercury Weather
Mercury draws clear inspiration from my previous pick Weather Line (R.I.P.), but adds a few additional features while keeping it a simple, single-view weather app. Great on both iOS and Mac.
Delivery Tracking
Parcel
I was a Deliveries user for nearly a decade, but switched to Parcel last year. It’s a menu bar app that helps me track my deliveries. 🤷♂️
My Workspace
Laptop
14” M3 Pro MacBook Pro
The performance and battery life of the M-series Mac is truly a modern marvel. Much of my core software tools are Mac-exclusive, so I’m not switching to Linux anytime soon.
Laptop Bag
WaterField Shinjuku
There’s nothing like a functional, well-made bag, and WaterField’s design and quality are legendary. I’ve had their Muzetto sling bag for nearly 15 years and it’s only gotten better with age. The Shinjuku is compact, handsome and exceptionally well-made. And it fits everything I need to bring back and forth from the office or on a plane.
Keyboards
Keychron Mechanical Keyboards
I’ve gone way down the mechanical keyboard rabbit hole, and have two custom boards - one at home and one at the office. Both have taped PCB, hand-lubed switches, and there's a cabinet full of unused switches, keycaps, testers, and keyboard tools.
-
Office
Keychron V6
-
Home
Keychron Q3
Mouse
Apple Magic Mouse
Charging the battery is laughably inconvenient, but otherwise it’s my ideal productivity mouse. It looks nice on the desk, travels well, and all of the gestures are second nature to me.
Earbuds
Apple AirPods Pro
I worked fully remote for seven years (and didn’t have kids), so noise cancelling headphones weren’t on my radar. Now I can’t imagine life without them.
External Display
Dell 27” UltraSharp U2713HM
I’ve had this monitor for almost a decade and it’s still going strong.
My ideal stack
Back-end
Laravel
As a framework and a community, Laravel has truly changed my life. It’s been the catalyst that allowed me to finally become the developer I always wished I was. Eight years in, it’s more fun and productive to work with than ever. Laravel forever.
-
Admin Panel
Laravel Nova
Building an admin panel can be such a rabbit trail, but Nova helps streamline the process and infers so much from the code I already wrote building the primary app.
-
Code Insights
Laravel Telescope
During local development, I almost always have Telescope open in a separate window to quickly see what route, controller and views were loaded, see duplicate queries, and track bugs. Especially helpful for API development.
-
Debugging
Ray
As mentioned above, Ray is an essential piece of my development toolset. It’s constantly improving and the variety of data you can send to it is astounding.
Front-end
Vue
Vue maps to the way my brain works so much better than React or Angular ever did. Writing templates still feels like HTML, and the Composition API is a joy to work with. It’s opinionated software at its finest.
-
Routing +
Inertia
Inertia solves 90% of my pain points when connecting a Vue front-end to a Laravel back-end. It allows me to leverage Laravel for all of the routing, auth, and data passing, and Inertia magically hands it off to Vue in a easily consumable way. Game changing.
-
State Management
Pinia
Vue’s first-party state manager is also its best. Pinia integrates so well with every other aspect of Vue, and my brain is still unlocking new ways to leverage it.
-
Type Safety
Typescript
I use Typescript on most of my projects, but typically to about 80% type purity. It helps me spot oversights and significantly improves linting, but trying to squash every red squiggly eventually hits a point of diminishing returns.
Preprocessor
Sass
Modern CSS has custom properties, nesting, imports, color functions, etc. So, why do I still use Sass? Short answer: loops, mixins, and variables that I don’t want visible in the final CSS. Shorter answer: I’ve used it for a decade and it ain’t broke.
-
Utilities
Tailwind CSS
I’ve found a nice sweet spot for Tailwind in my daily use (I even wrote about it). I still lean heavily on custom CSS classes but Tailwind helps keep me consistent and concise.
Content Mangagement
Statamic
I built dozens of sites on Wordpress over the years, but Statamic was immediately easier, sleeker, and more fun. There’s no better way to build a bespoke CMS for a website of any size.