Uses
This is what’s on my desk and powering my day-to-day development work. I’ve spent years tweaking this setup to focus on what actually gets things built rather than what looks impressive.
You’ll find my hardware, software, web services, and the learning resources that have shaped how I approach development. This setup keeps evolving, but the goal stays the same: create a clean, low-cost development environment that gives me everything I need to build and deliver well-written, scalable, and maintainable web applications. I’ve also included the services I use to serve my own projects and support my attempts at making a living through my web apps.
If you’re curious about how I build and ship projects, or you’re looking for recommendations for your own development stack, this page should give you a comprehensive view of what works for me.
Hardware
-
2021 Apple MacBook Pro 16-inch
My main development machine! I used to be a Windows guy, but moved over to the Mac around 2023. Never looked back since! 1TB SSD with 16GB Ram - Space Grey/Silver
-
2 x Apple Studio Display
Standard glass with tilt- and height-adjustable stands (using built-in webcam & Audio). Swapped a 49-inch ultra-wide screen for these 2 in early 2024.
-
uGreen Vertical Laptop Stand
Adjustable aluminum desktop stand. Not a well-known brand, but I was using the Twelve South clam-shell stands. This one is much nicer, sturdier and cleaner than the twelve south. Recommended!
-
Elite Standing Desk (E9)
Motorized standing desk with light grey/white frame and Mahogany desktop. Took the plunge and finally bought one in 2024 after years of putting it off. Solidly built, great height and plenty of desk space!
-
Exofcer High Curved Back Chair
Simple and clean, yet supports my back during long day. I’ve tried a fair few different chairs over the years. The leather-padded executive chairs are nice and all, but just don’t help your back during longer sessions. It’s a chair on wheels, nothing more, and it suits me well!
-
2 x Apple Magic Mouse
Why do you need two, I hear you ask? Well, due to the charging port being underneath, one is always in use while the other one is charging or stored in a co2CREA carrying case.
-
Apple Magic Keyboard with Numeric Keypad
Not trying to be an Apple fan boy, but I just love the simplicity and cleanliness that Apple products give. If anyone has potential alternatives let me know. No mechanical keyboards please.
-
BenQ ScreenBar Halo LED Monitor Light
With wireless Controller, adjustable Brightness and colour Temperature options. USB-A Powered. I have this on daily even during the day. My eyes and brain have thanked me for it!
-
2021 Apple iPad 10.2-inch (9th Generation)
Secondary device for testing responsive layouts and general reading / watching while chilling.
Software
-
PHP Storm & Premium Plugins
My primary IDE for all web development work, whether Laravel-based or not. I’ve customized it with the Laravel Idea Plugin for enhanced Laravel development, plus Atom Material Icons, Material Theme (paid version), and Fira Code font to create a comfortable coding environment.
-
Windsurf Cursor IDE
AI-powered IDE that I use for assistance with writing unit tests and fixing PHPStan issues - it’s been a game changer for these tasks. There are quite a few AI development tools out there now, but Windsurf has really helped streamline my workflow for these specific challenges.
-
XCode
For Swift/iOS development - still learning and exploring mobile app development when time permits. I’m relatively new to iOS development but enjoy experimenting with it as a side interest.
-
Laravel Herd Pro
Local development environment with built-in email testing and debugging tools. The Pro version eliminates the need to switch contexts when testing emails, keeping my workflow streamlined and focused.
-
iTerm2 with OMZsh
Enhanced terminal experience with better window management, split panes, and improved productivity features compared to the native macOS Terminal. Oh My Zsh adds smart auto-completion, git integration, and developer-focused shortcuts that streamline my daily workflow.
-
Spatie Ray
Real-time debugging and monitoring. Available for any PHP based application and of course Laravel too. This allows me to easily add debug breakpoints anywhere and dump data without stopping code execution.
-
Remote Desktop Manager
I use this for streamlined SSH connection management across all my servers. I store all SSH connections with their keys and root passwords in one secure location, so when I need to access any server, it’s just a click to connect - no hunting for credentials or remembering IP addresses. Simple, organized, and efficient.
-
Navicat for MySQL
For local development I’ll use SQLite or MySQL depending on the project needs. I’ve been using Navicat for MySQL database management for several years now - it’s a premium tool but absolutely worth the investment. The intuitive interface, powerful query tools, and reliable connection management make database work much more efficient than command-line alternatives.
-
FileZilla FTP Client
I rarely use FTP/SFTP these days, but when I do, FileZilla gets the job done reliably. It’s been around forever and just works - enough said!
-
NativePHP
This piece of kit has been in development for a while. NativePHP means I can bring my PHP & Laravel skills to the world of desktop & mobile apps, building cross-platform applications effortlessly.
-
Serif Affinity Designer 2
Mainly used for photo manipulation, basic logo design, favicons, and social share images. I’m no graphic designer by any means, but this tool handles all my visual needs for projects - from quick photo edits to creating simple branding elements and social media graphics.
-
Arc Browser
I’ve been using Arc since mid-2024. Until then I was purely a Chrome user, but switched to Arc for its privacy focus and excellent tab management features. The workspace organization and cleaner interface have really improved my browsing workflow.
-
Safari
I only really use Safari for cross-browser testing - it’s rarely my go-to browser, but as it’s the macOS default browser, it’s essential for ensuring my web apps work properly across different platforms. Sometimes the built-in tools come in handy for testing edge cases.
Testing Tools
-
Pest
A testing framework that makes writing unit tests less painful. Pest’s syntax is so much cleaner and more intuitive than PHPUnit - tests read almost like plain English, which means I actually enjoy writing them and maintaining test coverage. I’m always aiming for 100% code coverage!
-
PHP/Lara Stan
A static analysis tool for Laravel projects - catches bugs and code issues before I even run the code. It’s like having a code reviewer that understands Laravel’s magic methods and facades, helping me write cleaner, more reliable PHP. For small projects, I always use max level (10?). For larger ones, I aim for level 6 depending on the complexity, but no less than 5 as standard.
-
Peck
A static analysis tool that catches typos in variable and method names before they become runtime errors. I don’t know about anyone else, but I’m constantly misspelling variables and method names - Peck saves me from those frustrating debugging sessions where the issue is just a simple typo that could have been caught immediately.
-
Rector
An automated code refactoring tool that upgrades and modernizes my PHP codebase. I use Rector to automatically migrate code to newer PHP versions, update deprecated syntax, and apply coding standards - it saves me hours of manual refactoring work and helps keep my projects current with the latest PHP best practices.
Infrastructure Services
-
Linode
I’ve been hosting my servers on Linode for a while now. It’s not the cheapest option out there, but it’s reliable and doesn’t overcomplicate things. The interface is clean, spinning up new servers is quick, and I can manage DNS records all in one place. Does what I need without the bloat.
-
Ploi
This is how I manage all my Linode servers and deploy my apps. Before Ploi, I was using Forge. Forge is also great, but I need more than their basic plan allowed, so I moved over to Ploi - Worth every penny..
-
Resend
Best transactional email service I’ve used. My emails actually reach people’s inboxes instead of getting stuck in spam folders, which was a constant problem with other providers. The API is clean and simple to integrate. Built by developers for developers, so no marketing fluff or trying to sell me email campaigns I don’t need.
-
Dynadot
My go-to for buying domains. No nonsense pricing, free WHOIS privacy (which others charge extra for), and they don’t try to upsell me hosting or website builders every time I log in. The interface is basic but functional - exactly what I want in a domain registrar.
-
Stripe
I could use Paddle or similar services that handle more of the payment stuff, but Stripe gives me complete control over the checkout flow. The documentation is excellent, integration is straightforward, and it works reliably. Sometimes the extra flexibility is worth the bit of extra setup work.
-
UseFathom
After many years of being tired of Google and wanting to use more ethical, privacy focused means of tracking visits, I opted for Fathom. They don’t track personal data or use cookies and no annoying cookie banners needed either. Fathom gives me all the essential metrics I need in a clean, simple dashboard without the privacy concerns, plus it’s fully GDPR compliant out of the box.
Productivity & Communication
-
ProtonMail
I got fed up with Google reading my emails to show me ads, so I switched to ProtonMail. Everything’s encrypted end-to-end, which means even Proton can’t read my messages. Being based in Switzerland is a nice bonus too - much better privacy laws than here. The best part is being able to send password-protected emails that self-destruct to anyone, even if they don’t use Proton.
-
ProtonPass
Moved over from LastPass after their security issues. ProtonPass encrypts everything - not just passwords but also the URLs and notes, which a lot of other managers don’t bother with. The import was painless, and I love the email alias feature for signing up to sketchy websites. Plus it monitors the dark web and alerts me if my credentials show up anywhere they shouldn’t.
-
OpenAI - ChatGPT & API
I use ChatGPT’s API quite a bit in my apps for building chatbots and automated features. GPT-4 is really good at understanding what users are trying to say, even when they’re not being clear. I prefer the API billing because I only pay for what I actually use rather than being stuck with a monthly subscription.
-
Anthropic - Claude & API
Claude is my go-to when I need something that follows instructions precisely. It’s better than ChatGPT at not making stuff up, which is crucial when building production apps. The image analysis and code execution features are handy too. The caching keeps costs reasonable when building longer conversations.
-
Google Drives
I know, I know - I’m trying to get away from Google but Drive is just too convenient for everyday stuff. The real-time collaboration is unbeatable when working with others, and 15GB free storage covers most of my non-sensitive files. The search actually works, which is more than I can say for some alternatives.
-
Proton Drive
This is where I keep anything sensitive - contracts, financial docs, personal stuff. It’s fully encrypted so Proton can’t see what I’m storing. The sharing features with password protection and expiring links are really useful. Plus it’s in Switzerland, not subject to US data sharing agreements.
-
Trello
I’m a visual person, so Trello’s card system just clicks with my brain. I can move stuff around, break big projects into smaller tasks, and see everything at a glance. It’s simple enough that I actually use it instead of letting it become another abandoned productivity app.
-
Apple Notes
Apple Notes has gotten surprisingly good over the years. I can throw in text, photos, sketches, whatever - and it syncs instantly across all my devices. Perfect for quick meeting notes or random ideas. The search works well too, which is important when you’ve got hundreds of notes floating around.
-
CleanMyMac
Since my Mac is my main work machine, I run CleanMyMac weekly to keep things tidy. It clears out all the junk files and cache that builds up over time. Not exciting, but it keeps everything running smoothly without me having to think about maintenance.
Learning Video Tutorials
-
Laracasts
Jeffrey Way and the other tutors at Laracasts are excellent teachers. With over 1,700 videos, Laracasts covers everything from basic Laravel to advanced stuff I didn’t even know existed. The short ’Larabits’ episodes are perfect when I need to learn something specific quickly. It’s basically Netflix for developers, and the community forum has saved me countless hours of debugging.
-
Livewire Screencasts
These are the official screencasts from the Livewire team, so you’re learning directly from the people who built it. Watching them build real components like contact forms and shopping carts taught me way more than just reading docs. The TDD workflows and Alpine.js integration videos gave me confidence to ditch JavaScript for most of my UI needs.
-
Spatie Courses
The Spatie team has built hundreds of Laravel packages that get downloaded millions of times, so they know what they’re talking about. Their ’Laravel Beyond CRUD’ course completely changed how I structure larger applications. The event sourcing and package development courses have made my code much cleaner and more maintainable.
-
CodeCourse
Alex’s screencasts are great for learning specific techniques without sitting through hour-long courses. His project-based approach means I can follow along and actually build something useful. Perfect for filling gaps in my knowledge or learning how to integrate third-party APIs quickly.
-
High Performance SQLite
Aaron Francis showed me that SQLite isn’t just for toy projects. This course taught me how to optimize queries, use WAL mode properly, and scale SQLite to handle serious workloads. Now I know how to get 100k+ queries per second out of SQLite, which has changed how I think about database choices for smaller projects.
Learning: Documentation & Components
-
Livewire 3
Livewire lets me build interactive UIs without touching JavaScript. It feels like magic - I can create single-page app experiences while staying in PHP and Blade templates. Version 3 is much faster than before, and the Alpine.js integration is seamless. Perfect for building complex web apps quickly without the JavaScript framework overhead.
-
Tailwind CSS 4
Tailwind changed how I write CSS completely. Version 4’s new engine is incredibly fast, and they removed the config file requirement which makes setup much simpler. I can build responsive designs without ever leaving my markup. That said, I’m very familiar with CSS3, so I use it when needed!
-
FluxUI
This is the official component library from the Livewire team. Instead of building common components like date pickers and modals from scratch, I can just drop in FluxUI components that work perfectly with Livewire out of the box. Everything is accessible and dependency-free, which keeps my projects clean and maintainable.
-
Alpine Components
Alpine.js gives me lightweight JavaScript interactions without the complexity of React or Vue. This component collection provides keyboard-accessible UI elements that work great alongside Livewire. It’s like jQuery for modern web development - simple, powerful, and I can add behavior directly in my HTML with minimal code.
-
Tailwind Components
The official Tailwind UI library has over 500 professionally designed components for marketing sites, web apps, and e-commerce. I use these as starting points rather than building everything from scratch. Great for learning advanced Tailwind techniques and speeding up the design process.
-
Lucide SVG
My go-to icon library. It’s a fork of Feather Icons with over 1000 consistent, customizable SVG icons. They’re lightweight, work great with modern frameworks, and I can easily adjust the stroke width, size, and color to match my designs. Much better than hunting for random icons across different libraries.
These tools have shaped how I approach web development, but every developer’s journey is different. I’ve learned that there’s rarely a "perfect" stack, just tools that align well with your projects, team, and personal preferences. If you’re using something amazing that I’m missing, or want to chat about any of these choices, I’d love to hear from you.
The best tools often come from community recommendations, and some of my favorite discoveries happened through casual conversations with other developers. Drop me a line if you want to share what’s working for you.
Last Updated on June 30th, 2025