My 2019 web development setup
Tags: webdev, linux
Published: 2019-04-24 20:27:24

---
title: My 2019 web development setup
published: true
description: 
tags: #webdev, #linux
---
<p>I find articles like <a href="https://dev.to/brpaz/my-linux-development-environment-of-2018-ch7">this one</a> very interesting, partly because it's always fun to see what other developers use on a day to day basis, and partly because I'm seeing more and more developers using my favourite OS - Ubuntu - for their development set up.</p>

<p>With the recent release of <a href="https://wiki.ubuntu.com/DiscoDingo/">Ubuntu 19.04 (aka Disco Dingo)</a> I was jumped onto the opportunity to upgrade my laptop and try it out. This gave me the chance to document the apps and tools I needed to reinstall. Hopefully you find something useful here.</p>

<p><em>Authors note, this list only includes software I have to install over and above the base Ubuntu system, or cloud based services I use regularly. If you want to know what I use to play music, view images or edit spreadsheets, I'm going to be using whatever comes installed with Ubuntu.</em></p>

<h3>Browsers</h3>

<ol><li><a href="https://www.google.com/chrome/">Chrome</a> - the more I'm reading about Google lately, the more I'm considering switching to Firefox as my main browser.</li><li><a href="https://www.mozilla.org/en-US/firefox/">Firefox</a> - this actually comes preinstalled on Ubuntu, but it's worth reminding everyone how awesome it is. Before Chrome, Firefox was the web developers browser of choice.</li></ol>

<h3>Development environment</h3>

<ol><li><a href="https://en.wikipedia.org/wiki/LAMP_(software_bundle)">LAMP</a> - Digital Ocean has become a great resource for Linux based set up tutorials, so I usually just <a href="https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04">follow the steps in whatever the latest flavour of Ubuntu set up tutorial</a> they have available.</li><li><a href="https://www.virtualbox.org/">Virtualbox</a> &amp; <a href="https://www.vagrantup.com/">Vagrant</a> - if I need anything specific (nginx, or an older version of PHP/MySQL) I spin up a Vagrant <a href="https://app.vagrantup.com/bento">Bento box</a> of whatever flavour of Linux needed.</li><li><a href="https://laravel.com/docs/5.8/homestead">Homestead</a> - I don't use this much any more, but it's still a great tool.</li></ol>

<h3>Editors</h3>

<ol><li><a href="https://www.jetbrains.com/phpstorm/">PHPStorm</a> - While I spend most of my time working with PHP code, PHPStorm is so much more than just a PHP IDE, so there are rarely files I can't edit with it.</li><li><a href="https://notepadqq.com/s/">Notepadqq</a> - Notepadqq is a Linux version of Notepad++, which I used as a Notepad replacement on Windows.</li></ol>

<p>Development Tools (GUI)</p>

<ol><li><a href="https://www.phpmyadmin.net/">PHPMyAdmin</a> - I've been using PHPMyAdmin since my first days of PHP development. It's the quickest way to make small database changes<br></li><li><a href="https://www.mysql.com/products/workbench/">MySQL Workbench</a> - for when a more robust database modelling tool</li><li><a href="https://github.com/mailhog/MailHog">MailHog</a> - catches all mail sent via the local web server. I found a great <a href="https://www.lullabot.com/articles/installing-mailhog-for-ubuntu-1604">Ubuntu set up article</a> that still works 4 years later.</li></ol>

<p>Development Tools (CLI)</p>

<ol><li><a href="https://git-scm.com/">Git</a> - I have a <a href="https://github.com/">GitHub</a> account for public projects and a <a href="https://gitlab.com/">GitLab</a> account for private ones.</li><li><a href="https://subversion.apache.org/">Subversion</a> - because WordPress.org.</li><li><a href="https://getcomposer.org/">Composer</a> - package manager for PHP.</li><li><a href="https://phpunit.de/">PHPUnit</a> - Testing framework for PHP.</li><li><a href="https://github.com/squizlabs/PHP_CodeSniffer">PHP CodeSniffer</a> - I've become dogmatic about making sure my code conforms to a coding standard. I use the <a href="https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards">WordPress Coding Standards</a> for WordPress development and <a href="https://www.php-fig.org/psr/psr-1/">PSR-1</a> for other PHP projects.</li><li><a href="https://wp-cli.org/">WP-CLI</a> - the command line interface for WordPress. I recently discovered wp-cli-psysh by <a href="https://github.com/schlessera">Alain Schlesser</a>, which makes the wp shell command a joy to behold.</li><li><a href="https://yui.github.io/yuicompressor/">YuiCompressor</a> - I don't tend to use task runners for minifying JavaScript and/or CSS (I know, I know), and PHPStorm has built in support for doing this via YuiCompressor.</li><li><a href="https://nodejs.org/en/">NodeJS</a> - to install YuiCompressor (mostly)</li><li><a href="https://github.com/FiloSottile/mkcert">mkcert</a> - great CLI app for generating locally trusted SSL certs. Installed via...</li><li><a href="https://docs.brew.sh/Homebrew-on-Linux">Homebrew</a> - purely to install mkcert</li><li><a href="http://www.ivarch.com/programs/pv.shtml">Pipe Viewer</a> - a tool for monitoring the progress of data through a pipeline. I use it to view the progress of mysqldump commands.<br><br></li></ol>

<h3>API Tools</h3>

<ol><li><a href="https://www.getpostman.com/">Postman</a> - Useful for testing API requests</li><li><a href="https://www.soapui.org/downloads/soapui.html">SOAP UI</a> - The first time I had to work with a SOAP API I used SOAP UI, and I've stuck with it ever since</li></ol>

<h3>Communication</h3>

<ol><li><a href="https://slack.com/">Slack</a> - the <a href="https://castos.com/">Castos</a> team, <a href="http://wpsouthafrica.org/">WPSouthAfrica</a> and Making WordPress communities, and <a href="https://codeable.io/">Codeable</a> experts communities all chat via Slack.</li></ol>

<h3>Productivity/Tracking</h3>

<ol><li><a href="https://wakatime.com/">WakaTime</a> - logs time spent writing code. Useful when I forget when I was working on what</li><li><a href="https://toggl.com/">Toggl</a> - Time tracking tool. I've definitely gotten better at time tracking using this tool, which is vital if you charge by the hour.</li></ol>

<h3>Multimedia</h3>

<ol><li><a href="https://www.maartenbaert.be/simplescreenrecorder/">SimpleScreenRecorder</a> - I've not found a better app on Ubuntu to record screencasts</li><li><a href="https://www.audacityteam.org/">Audacity</a> - audio editor, mostly used to edit WPHackerCast episodes.</li><li><a href="https://www.videolan.org/index.html">VLC</a> - I don't think I've used another video player in over 10 years</li><li><a href="https://www.awesomescreenshot.com/">AwesomeScreenshot</a> - Chrome browser extension for quickly taking browser screenshots.</li></ol>

<h3>Password Management</h3>

<ol><li><a href="https://www.lastpass.com/">LastPass</a> - I don't know what I'll do if I ever forget my master password!</li></ol>