Document now to thank yourself later (for more than just your code)
Tags: workflow, documentation
Published: 2019-09-26 20:20:37

---
title: Document now to thank yourself later (for more than just your code)
published: true
description: Things happen. The cat knocks a pint of your very best ale onto your laptop, or you have a drive failure, or a bug infuriates you so much that you throw your laptop to the other side of your room. It's understandable and in some cases inevitable, but you can make sure you are prepared for it, and thank yourself later.
tags: Workflow, Documentation
cover_image: https://thepracticaldev.s3.amazonaws.com/i/gu44qfmmwljlqs2sjm4z.jpg
---

There's more to document than just your code, and documenting your environment now will have headaches in the future when you need to set it up again.

# Why?

You never know when that day is going to come. One of the bad days when a drink spills or a drive fails or something simply goes wrong. Or one of the good days when your department finally gets system upgrades, or your butterfly keyboard fails for the seventh time so Apple replace your machine. 

In the case where that day does come, I'm sure you are anxious to get back up and running on your new system as fast as possible. By simply documenting your must-have tools, programs and commands, you can make sure that rebuild process is quick, easy and efficient. Most importantly, you won't forget to do something critical to your work and waste hours debugging your problem.

# How?

It can be a note on your Notion notebook, or a readme in a private git repo. Whatever suits you and your normal note-taking habits.

Start with the base software. The things you need to be able to do other things. 

Follow this with any commands you need to run to configure things or add other things to your software. 

Follow that with any extensions and non-critical things that improve your experience on your machine and make it feel like home.

Finally, finish it off with any general settings around your system to improve your experience using your system.

Here's mine (for mac) for an example:

### Base Software

- Safari (pre-installed), Chrome, Firefox
- VS Code
- iTerm2
- Notion
- Slack
- GitHub Desktop
- Sketch
- Office
- Spotify
- Sequel Pro
- Aquarelo
- Lastpass
- Filezilla
- Alfred
- Bartender
- XAMPP (Standard, non-VM version)

### Commands to run

- **Xcode utilities to extend command line** - ``` xcode-select --install ```
- **Oh my zsh** - ``` sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" ```
- **Homebrew** - ``` /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ```
- **NodeJS, composer** - ``` brew install node composer ```

### Extensions and non-critical

- Laravel Blade Snippets for VSCode
- Material Icon Theme for VSCode
- Python for VSCode
- VSCode theme set to Solarized Dark
- Ensure terminal set in VSCode
- Set GitHub Desktop to dark
- Configure XAMPP to accept Virtual Hosts
- Configure default connection in Sequel Pro to SQL instance of XAMPP
- Configure lastpass extension with Safari

### General settings

- Set system theme to dark
- Configure multi touch on trackpad
- Set UI scaling to smallest
- Shrink dock
- Add printers
- Enable filevault
- Disable spotlight shortcuts and replace with Alfred
- Turn off automatic backlight dimming
- Configure time machine

And thats about it! 10 minutes to put together to make it much more efficient for that future case you need it. Also, ironically, my MBP is going to the Apple Store again on saturday.

Credit to Pexels for cover image.