Welcome to OSX, Evergreen Edition
I had an old version of this article written in 2016 👴🏻, but obviously a lot has changed since then. Instead of rewriting it every few years, I'm going to designate this as the "evergreen" version. I'll update it as I find new tools that I like, or as my workflow changes.
Fundamental Improvements: Finder, Terminal, Karabiner Elements
It took me a while to not be annoyed by Finder. There were other things I used (TotalFinder) or looked at from a distance (Path Finder), but after many years, vanialla Finder does the job.
To be honest, the default Terminal app is fine, and miles ahead of Windows CMD or PowerShell. But since when is fine good enough? You have a variety of good options to choose from on Mac. I'm currently using Warp, but if that wasn't an option I'd be using iTerm2.
As crazy as it sounds, even inheriting an extra modifier key with OSX ("command" in addition to shift, control, and alt) I still occasionally find myself wishing for another. So I use Karabiner Elements to map the CAPS_LOCK key to cmd+ctrl+alt+shift, which some people call "super."
I have ctrl+\
configured as my terminal visor shortcut. I leave it running 24x7 and can use that keyboard shortcut to bring up a terminal window no matter what I'm doing.
Developer Stuff
In my terminal, I prefer to use Zsh with Oh-my-zsh. There are dozens of great plugins and even more themes to choose from.
I write my code in VS Code. For the most part I think I use the default keyboard shortucts, though I have added and modified a handful that I'll have to come back and add at some point. This was my sublime keymap, and I probably ported some of that over. Extensions I use:
- Apache Conf
- Auto Rename Tag
- Better Comments
- Bookmarks
- CFML
- Cloak
- Disable Ligatures
- Docker
- DotENV
- embrace
- ESLint
- FileUtils
- GitHub Actions
- GitHub Copilot
- GitLens
- Import Cost
- JavaScript and TypeScript Nightly
- Material Icon Theme
- npm Intellisense
- PostCSS Language Support
- Prettier
- Rainbow CSV
- shadcn/svelte
- sort lines
- Svelte for VS Code
- Svelte Intellisense
- Tailwind CSS IntelliSense
- Template String Converter
- Text Pastry
- Thunder Client
- Todo Tree
- Total Typescript
- Twoslash Query Comments
- Wrap Console Log
- YAML
I also write my blog posts in VSCode using Markdown. It's all hosted on GitHub, actually. For managing MySQL databases (local and remote) I use Sequel Ace.
Pretty much everything else that I use near-daily is Node.js and node modules. If you just need to stand up a quick basic static-file web server in a random directory, I like nws.
Do enough Node stuff and eventually you'll run into native modules that require compiling locally on your system. That, or if you do any iOS development at all (even with PhoneGap), you're going to need XCode. Better to just bite the bullet early and install it / update it as needed through the App Store.
On the off chance that you need an (S)FTP/S3 client, Transmit is pretty good.
Microsoft Remote Desktop is actually reasonably good for managing a few windows boxes remotely, but Royal TSX is better.
Most of the time I do my Git work in the terminal, but occasionally I'll want a GUI for block-level staging or history browsing. In those cases I like SourceTree.
I use Keynote for presentations where I won't be doing any live code demos, or various web presentation frameworks when I am.
Other Great Stuff
You will not find a better password manager than 1Password. Fast, secure, and beautiful to boot. Integrates really well with major browsers and has system keyboard shortcuts for quick access. They even have an Android Keyboard that makes accessing your passwords on the go a snap. I bought a family license and forced it on my wife and mom, too. When my kids are old enough to start having passwords for stuff, they'll be forced into it too.
All of the computers in my house backup to Backblaze.
For email, I've tried a bunch over the years. None are ever as good as straight up webmail. That said, all of my email is through Google Mail. If you have a work Exchange server or something, I can understand why you would want a local native client. I just don't have a recommendation for you. Lately I've been using Mimestream as a native mail client because it has good integration with gmail, and the least-awful dark mode I've seen.
I have access to somewhere between half a dozen and a dozen google calendars, and coordinating them can be a real pain. I really like Cron.
For a basic running todo list I have been using the native apple Reminders app. It looks better on mobile than on desktop, but it syncs automatically and it has most of the features I want. I also dabble with notes in Obsidian that border on to-dos, but when pressed to give my primary to-do source, it's Reminders.
I have used LibreOffice for office documents (word, excel, etc), but the modern apps from Microsoft aren't half bad. Whatever you do, don't use OpenOffice!
If I need to record some or all of my screen, I always use QuickTime Player (which should come on your Mac). I don't do a ton of video editing yet, so iMovie is still sufficient for my needs. I see FinalCut in my future, though. Just like Windows, the best video player is VLC hands down.
Need to figure out what's eating up so much disk space? Try Disk Space Analyzer.