Web development: notes from the trenches

A reference for web developers at every level, covering the tools, technologies, and concepts that make up the modern development stack. These are the things that tutorials assume you already know, the terms used interchangeably until they suddenly matter, and the tools that appear in every project but rarely get properly explained.


  • A guide to frontend tooling

    Frontend tooling can feel overwhelming, with competing tools, deprecated projects, and new alternatives appearing every few years. This article explains what each category of tool does and where things stand today.

  • Destructuring props in React and TypeScript: a cheat sheet

    There are several ways to type and destructure props in React with TypeScript, and one common mistake that looks correct but means something different entirely. This is a practical cheat sheet covering the options and the pitfall to avoid.

  • Unix dotfiles and rc files: a developer’s guide

    Files like .eslintrc, .npmrc, and .babelrc appear in almost every modern project but are rarely explained. This article covers what dotfiles are, where the rc naming convention comes from, and why modern tools are moving away from it.

  • What is WordPress? The technical stack explained

    WordPress powers almost half the websites on the internet, but what is actually running underneath the dashboard? This article explains the LAMP stack WordPress is built on, how it generates pages dynamically, and how its files are organised.

  • Setting up WordPress locally with Docker

    Running WordPress locally means recreating the same web server, database, and PHP stack it runs on in production. This guide walks through setting up WordPress with Docker Compose, including fixes for two common problems you are likely to encounter on macOS.

  • A developer’s guide to SSH: Secure Shell explained

    SSH is the protocol that lets you securely connect to and control remote computers over a network. This guide explains what it is, how authentication works, and how to generate and use SSH keys in practice.

  • Sass or Native CSS: do you still need a preprocessor?

    Native CSS now supports variables, nesting, scoping, and colour functions, covering most of what once required a preprocessor. This article looks at what Sass still offers that native CSS cannot replicate, and when it is worth including in a project.

  • How Node.js works

    You use Node.js daily but have you ever looked at what is actually happening under the hood? This article explains the single-process architecture, the event loop, and the async patterns that make Node.js behave the way it does.

  • What is Docker? Containers, images, and core commands explained

    Docker packages applications and their dependencies into standardised containers that run consistently on any machine. This article explains what Docker is, how it compares to virtual machines, and covers the core commands you need to get started.

  • A developer’s guide to tech stacks: LAMP, MEAN and beyond

    A tech stack is the collection of technologies used to build and deliver an application. This guide explains the most widely used web development stacks, from the battle-tested LAMP family to modern Node.js-based stacks like MEAN and MERN.

  • What is a shebang? How scripts know which interpreter to use

    That strange #! at the top of a script file is called a shebang, and it tells the operating system which interpreter to use when running the script. This article explains what it is, why it is called that, and the difference between absolute path and env conventions.

  • What is Node.js?

    Node.js brought JavaScript to the server for the first time, and the tools you use every day depend on it. This article explains what Node.js is, where it came from, and how it compares to newer runtimes like Deno and Bun.

  • Terminal, Shell, Bash: What’s the difference?

    The terms terminal, shell, and Bash are widely used interchangeably in web development, but knowing the differences matters. This article explains what each term means and how they all relate to each other.

  • Getting started with the Command-Line Shell

    A practical guide to using the command-line shell on modern operating systems. Covers how to find, change, and configure your shell, how to run shell scripts, and what developers need to know about Bash and Zsh compatibility.

Got any book recommendations?