Inspired by Wes Bos, this page details the things I use to stay productive. Let's dive in.
Time is a huge factor in staying productive. Your editor is the one tool you spend most of yours in and you should invest in optimizing your workflow skills. You'll benefit from them every day.
- Atom - no, I don't use VS Code. I realize I'm in the minority here and I constantly get asked why I'm not using VS Code, but I've been using Atom since it was in it's earliest days and I have invested a lot in both my set up and the community. I've written a handful of themes and plugins and heavily customized my editor. Any time I've tried switching to VS Code I end up switching back within days because I'm just not as productive and the switch doesn't seem worth it to me.
- Hyper Electron Highlighter - I wrote my own theme (see screenshot below). It's a slightly more vibrant version of Atom's One Dark syntax theme that I've customized to my liking.
- Fira Mono is my font in both the editor and terminal. It's free on Google Fonts.
Here are a handful of the plugins I use in my editor that I find especially useful:
- autocomplete-paths - gives you file path completion inside the editor.
- file-icons - adds icons (and optional colors) to files to better visual grepping.
- emmet - powerful snippet completion for HTML. See Emmet for more info if you're unfamiliar with Emmet.
- vim-mode-plus - I like vim a lot, but I love the features you get from a code editor like Atom. A vim plugin gives me the best of both worlds.
- sync-settings - super useful package, especially if you use Atom on multiple machines. This allows you to back up and restore your settings to/from a Gist linked to your GitHub account. It will sync your installed packages, settings, init script, stylesheet, keymap, and snippets.
- set-syntax - a package that adds syntax switching options to the command palette instead of having to remember the keybinding to open the panel for switching syntax.
- editorconfig - helps developers maintain consistent coding styles between different editors.
- autocomplete-modules - provides autocomplete on packages in
- less-than-slash - auto-close HTML tag when you type
- Hyper - It's super easy to customize and more performant than iTerm in a number of benchmark tests.
- fish as my shell. Much better than bash in my opinion. The intelligent autocomplete has changed my life. It's amazing. Also super easy to customize.
- Hyper Electron Highlighter theme. It's my Electron color scheme from Atom, ported to Hyper.
Here are a few of my favorite aliases I've set up:
afkstarts my screensaver
bitlyfollowed by a URL runs a Python script to get the shortened link and copies it to my clipboard. Mostly useful for Rickrolling people.
weathergets the current weather in your area - try it out! Run
curl wttr.inin your own terminal.
sudo. Stole this idea from Paul Irish, but I can't seem to find it in his dotfiles anymore.
resourcere-sources my shell if I've made changes
trash. I installed trash-cli, so setting
trashmeans instead of losing something forever when I run
rm, it dumps it into my trash so I can still recover it if I need to. I've been burned too many times.
git push -u origin $(git_current_branch). When you start a new branch in git, it's super annoying to have to set the upstream origin the first time you're pushing that branch. This alias makes it easy to publish a new branch.
I use a variety of other desktop applications to get things done. I'll elaborate a little on why I chose some of them, especially in lieu of other popular applications. If you can install the app via Homebrew Cask I will include the install command.
- Brave Browser - Brave is a browser that puts your privacy first and automatically blocks trackers and ads. I always loved the idea - especially because it made many sites load faster - but there were a few things that kept me away, mostly extensions. In late 2018 they switched from their own browser shell, called Muon, and began using Chromium, and along with that change we got access to every Chrome extension and the Chrome dev tools. I switched immediately and never looked back. At this point, it's essentially Chrome without Google tracking everything you do, plus built-in ad-blocking.
brew cask install brave-browser
- Apple Notes - I was using Bear for a while and it's really great (LOVE the markdown support), but ultimately I switched back to Apple Notes because I can't have shared notes with my wife in Bear. If they ever add that, I'll probably switch back.
- Reminders - I used Wunderlist for years and loved it, then realized that Reminders could do everything I needed in a todo list app, plus being able to add items to my lists via Siri is a huge benefit. I can even share lists with my wife, like a grocery list, and we can both add/remove items.
- Tweetbot - I love Twitter, and I use it as my primary source of news/information, but I can't stand the ads and their official desktop app wasn't updated for years. Years ago I got Tweetbot for iOS and fell in love. Then they came out with the desktop app, and it's awesome. Ever since I started using the desktop app, I find that I keep up with it much better.
- Kap - Great app for doing screen captures with options for exporting as a GIF or video file. Super useful for showing UI changes in GitHub PRs. [website, download]
brew cask install kap
- Slack - basically the go-to app for team collaboration. I like it pretty well. Slackbots are fun to build when you have some free time.
brew cask install slack
- Spectacle - This might be the most underrated app ever. Windows computers have some handy built-in capabilities for managing your application window placement, but macOS doesn't have that. Spectacle gives you keyboard shortcuts for rearranging and resizing your windows. I will never be able to use a Mac without this app. [website]
brew cask install spectacle
- Insomnia - A REST client, used for testing API calls. I used to use Postman for a REST client, but I came across Insomnia and it's really great. It also has excellent GraphQL support.
brew cask install insomnia
- Robo3T - Previously Robomongo. I use it for interacting with MongoDBs. Pretty solid.
brew cask install robo3t
- LastPass - I use LastPass for password management across all my devices. I pay $48 per year for a Family Plan because it gives me a family sharing folder so my wife and I can both use it, and also has an emergency access so if I die, someone can get access to my account and get my passwords if necessary.
brew cask install lastpass
- Apple Mail - I was using Newton Mail for a few months but it's pretty pricy ($49 per year) and there were still a few bugs that would drive me nuts. Apple Mail is super stable and compatible with basically every type of email service, and it's reportedly getting some nice new features in Fall 2019.
- I have two 23" HP monitors mounted on monitor arms mounted to a really nice sit/stand desk that I didn't pay for.
- My laptop (15" MBP) sits beneath the two monitors, centered on the desk.
- I use Apple AirPods and can't recommend them enough.
- When I'm not standing, I sit on a buoy stool. My company had a few of them sitting around our building and I snagged one instead of using a normal desk chair. I love it. I have bad posture and this helps a lot.
- I use an Apple Magic Keyboard and Apple Magic Trackpad. I love the gestures on the MacBook touchpad, so I opted for the Magic Trackpad instead of a Magic Mouse, but I do hear excellent things about the mouse.
- I have one 23" Acer monitor
- To the left of the monitor, my laptop (15" MBP) sits on top of an mStand by Rain Design. I love it. It also helps keep the laptop cool so it doesn't overheat.
- I have some Logitech speakers and subwoofer that I plug into my laptop most of the time when I want to listen to music. If I need to get on a call or be quieter, I have a pair of Apple headphones I plug in.
- The desk itself is an IKEA table top (61" beech wood, don't remember the name) mounted on a frame I built out of black steel pipes from Lowe's.
- I have two glass dry erase boards on the wall next to my desk. They were also from IKEA, and look a lot nicer than they really are. So far I'm not super impressed. We have some glass dry erase boards at work that are way better to write on (but also probably 10x more expensive).