Setting up my Development Environment


First published: 11/11/2024

Every few years I get a shiny new MacBook. Either I’ve upgraded my trusty MacBook Pro for a newer, faster, shinier model, or I’ve started at a company that supplies me with my dedicated work machine.

I know folks who like to clone a customised Linux distro, or restore from a backup, but I take joy in setting up a machine manually from a clean slate. Over the years, I’ve become particular about how I like my machine setup, from which trusted applications to install, through to personalised handy shortcuts I can’t live without. On the flipside, I get to shed the cruft that’s managed to squat rent-free on my old machine.

Computer setup

Let’s start with the settings built in to the MacBook. The focus here is to improve security, privacy, and reduce distractions.

  • Encrypt device
  • Enable firewall
  • Turn off advertising and analytics settings
  • Disable all notifications
  • Remove unnecessary icons from dock
  • Remove unnecessary items from the menu bar
  • Automatically hide dock

There are also a few personal preferences I like to set:

  • Max out key repeat speed
  • Use fn keys as standard keys
  • Turn off all “smart” keyboard features
  • Turn off automatic brightness adjustment when charging
  • Always show scrollbars

Software

Here, I take stock of all the software I use on a regular basis as someone who uses a device both for personal enjoyment, but also for web development.

These are software I install regardless of how I expect to use my machine on a day-to-day basis. Programs like Slack won’t make the list because it’s likely, but not guaranteed, to be a work requirement.

Browsers

It’s a common joke, that Safari’s only job is to install a better browser. In my case, it’s four better browsers.

Productivity/Utilities

  • Notion
  • TickTick
  • Loom
  • BetterDisplay
  • Screen Studio
  • Maccy (Clipboard manaager)
  • Magnet (Window manager)
  • Elgato Control Center
  • Elgato Camera Hub

Web Development

Scripts and Configurations

  • Setup git shortcuts
alias.co=checkout
alias.ci=commit
alias.br=branch
alias.st=status
alias.po=push -u origin HEAD
alias.rect=for-each-ref --sort=committerdate --count=10 --format='%~(refname:short)' refs/heads/
alias.cb=!sh -c 'git co $(git rect | fzf)'

Browser Extensions



If you enjoyed this article, then I figure you like to be kept in the loop with web development tips. If so, the Component Odyssey newsletter might be right up your alley.