Hello! My name is Susan and I make clear, to-the-point web development videos and guides.

Learn more about my background and experience at susanbuck.net

Have coding questions? Let me be your code mentor...

Get notified when I post new videos by subscribing on YouTube Code with Susan

General inquiries: mail@codewithsusan.com

Videos & Guides

Filter by: Show all Anaconda Apache Command Line Composer DaVinci Resolve Database Email Herd Laravel MariaDB MySQL Nginx PHP Photoshop Python SSH Server VSCode Vue.js YouTube API
Completely uninstall VSCode (Visual Studio Code) on Windows - To get a fresh install of VSCode on windows you have to delete not only the program itself, but some config files on your computer related to VSCode.
Laravel Herd released for Windows - Easy PHP local develoment - Laravel Herd is now available on Windows.
Simplest command line program for Windows - Git Bash - Work with Unix-based command line on Windows via Git Bash.
Getting started with Anaconda and Python on Windows - How to download and install Anaconda on Windows, set up an environment, and run a Python program.
What is Anaconda for Python? - What Anaconda is, what it includes, and why you would want to use it.
Web Developers - How good are your backups? - A PSA for anyone who manages web servers or sites: not only should you have backups in place, you should make sure you understand how to use those backups if needed.
Multiple Laravel apps on a single Nginx server - Deploy unique Laravel applications on a single Nginx server, accessed from separate domains.
Setup PHP CS Fixer in VSCode (junstyle php-cs-fixer) - Format PHP code with php-cs-fixer into VSCode using the junstyle.php-cs-fixer plugin.
8 development server options for Laravel - Summary of development server options for Laravel including: PHP's built-in server, Valet, Herd, Homestead, Docker, Sail, Laragon, XAMPP, MAMP, and WAMP.
YouTube API and Laravel - Building on my YouTube API & PHP series, this guide covers how to communicate with the YouTube API from a Laravel application.
VSCode - Disable code hint and hover popups (IntelliSense code completion) - Settings for disabling VSCode’s code hint popups that appear when typing or hovering text
Generate PDFs in Laravel - Generate PDFs from View files in Laravel using the package laravel-dompdf
YouTube API & PHP - Edit video details (google-api-php-client) - Edit a video’s details with the YouTube Data API using the google-api-php-client
YouTube API & PHP - Get all videos from a channel (google-api-php-client) - How to get all the videos from a YouTube channel using the YouTube data API, PHP, and google-api-php-client package. Covers paging through the results using tokens.
YouTube API & PHP - Initial setup (google-api-php-client) - How to query the YouTube API using PHP. In this setup video we’ll create and configure a new project in the Google Cloud console, install the package google-api-php-client, and query for the details of a video.
Dynamic environment configs in Laravel Dusk (duskapiconf) - Change application configs on the fly during Dusk tests using the package duskapiconf.
SSH Remote development with VSCode - Using VSCode’s Remote SSH extension, you can do development work directly on a remote server. Learn how to set up a new connection and troubleshoot any connection issues.
VSCode PHP CS Fixer: executablePath not found (junstyle) - Solutions for using the VSCode extension php cs fixer by junstyle and seeing the following error: PHP CS Fixer: executablePath not found. Try setting `php-cs-fixer.executablePath`: `${extensionPath}/php-cs-fixer.phar` and try again.
Blur background for vertical videos in DaVinci Resolve - Fill the background of vertical videos - DaVinci Resolve with a blurred background (Blanking Fill effect)
Export a still image in DaVinci Resolve - How to export a still image from a frame in a video in DaVinci Resolve
Record a voice-over in DaVinci Resolve - How to record a voice-over in DaVinci Resolve.
Laravel In a Nutshell - Conclusion (#9) - Series wrap-up and suggestions on what you should do next as you continue your path to learn Laravel.
Laravel In a Nutshell - Eloquent & Collections (#7) - More examples of working with Eloquent and coverage of Laravel’s Collection data type.
Laravel In a Nutshell - Database & Migrations (#5) - Set up a MySQL database and create tables for our demo application using Migrations.
Laravel In a Nutshell - Controllers (#3) - What are Controllers, how to create them, and how to invoke their methods from our Routes.
Laravel In a Nutshell - Intro & Installation (#1) - In this series I’ll provide a broad overview of working with Laravel. In Part 1 we’ll start off with installation.
Migrating Laravel site from XAMPP to Herd and DBngin - How to migrate an existing Laravel site and MySQL database from XAMPP to Herd and DBngin.
Laravel error: Integrity constraint violation - foreign key constraint fails - How to fix a foreign key constraint fails database error in a Laravel application.
Sequel Ace - Connecting to a Forge managed databases - These are the settings you need to enter into Sequel Ace to connect to a MySQL / Maria database system on a Forge managed server.
Forge Under the Hood - Scheduler (Cron) - Laravel’s server management service, Forge, has a Scheduler feature which allows you to schedule commands to be run on your server at a set time. This Scheduler feature is just a nice interface for your server’s underlying Cron program. In this guide we’ll learn how to work directly with Cron. You can use this information when troubleshooting or if you decide to cancel your Forge subscription and manage your own servers.
Configuring subdomains on Apache web servers - How to set up a subdomain on a Ubuntu server running Apache. Includes steps to set your DNS settings and configure the server to process the incoming subdomain traffic.
Copy files from a server to your computer using command line / SSH SCP - How to use the SCP (Secure Copy) command to move files or directories from a remote server to your computer (or some other server) via SSH.
Laravel permissions for storage and bootstrap/cache (Apache or Nginx) - How to identify your web server user and set the correct permissions for Laravel’s storage and bootstrap/cache directories.
Migrate from MySQL to MariaDB (Ubuntu) - Walk through of migrating from MySQL to MariaDB. Includes steps to backup MySQL, uninstall MySQL, install and secure MariaDB, and then import MySQL data.
Deploy Laravel on Ubuntu Apache server - How to deploy a Laravel application to a Ubuntu server running Apache.
Vue.js Simplified - FULL COURSE - In this series, we’re going to learn about the JavaScript framework, Vue.js. To guide our learning, we’re going to build a small application called FlashWord, a flash card game used to practice vocabulary of another language. This series will discuss both Vue’s Options API and Composition API, with a focus on the latter.
Understand DNS settings for email sending (MailGun) - An explanation of the various DNS records you create when configuring a domain with a email sending service like MailGun.
VSCode - Customize your keyboard shortcuts - How to customize your keyboard shortcuts in VSCode using both the Keyboard Shortcuts interface and the keybindings.json config file.
Safely run commands you find online - Blindly running commands you find online can lead to trouble. In this guide I expound on this and offer some tips on how to quickly research commands before you run them.
Upgrading to PHP 8.2 (Ubuntu with Apache) - Upgrading PHP on an Ubuntu server running Apache.
Composer require a forked repository - How to use a forked version of a Composer package on Github. Useful as a temporary solution if you identify a bug or issue in a package you’re using and the package maintainer is slow to address the issue.
Coding Rock, Paper, Scissors with a math equation - How to programmatically determine the winner of Rock, Paper, Scissors using math."
Fix for SSH Permission Denied (Public Key) - In this guide I’ll go through troubleshooting steps for when you attempt to SSH into a remote server/system using SSH keys as your authentication method and it fails with the error Permission denied (publickey).
Enable Swap Space an Ubuntu server - Easy Backup RAM Memory - One way to increase the responsiveness of a server and prevent out of memory errors is to add swap space. Swap space designates an area of your hard drive where your operating system can temporarily store data that it can no longer hold in RAM.
Upgrading with Laravel Shift - Full process with useful troubleshooting tips - Upgrading an application with Laravel Shift.
Quick Guide to Custom VSCode Snippets - Snippets in VSCode provide a way to easily inject commonly used code “snippets” into your files. In this guide, I will quickly show you how to create your own custom snippets."
Vue.js Simplified - Composition API (#14) - Learn how to work with Vue.js’s Composition API which allows you to organize your Vue instances by an applications features.
Vue.js Simplified - Working with Vite and Vue (#12) - In Part 11 of this series, we set up a new Vue application using the Vite build system. Now, let’s take a tour of this application so we can understand how we’ll customize it and integrate our existing FlashWord functionality.
PATH Variable (Mac) - Learn how to edit Mac’s PATH variable - a setting that contains a list of directories your computer should look in when executing programs via command line.
Vue.js Simplified - Building FlashWord (#10) - In this part of the series we’ll pull together all the skills we’ve covered so far into building an actual iteration of our FlashWord game.
Vue.js Simplified - Form Input Binding (#8) - Earlier in this series we saw how the v-model directive can be used to create a two way binding between a data property and a text input. In this guide, we’ll dig deeper to learn how v-model can be used on other form elements including checkboxes, radios, dropdown, and textareas.
Vue.js Simplified - List Rendering (#5) - Let’s look at rendering lists of values using Vue’s v-for directive. When working with v-for, you can iterate through arrays, objects, numbers, and/or strings.
Vue.js Simplified - Behind the Scenes (#3) - Before we dig further into working with Vue.js, let’s pause to highlight a couple of key points that are helpful to understand when working with Vue.
Vue.js Simplified - Introduction (#1) - In this series, we’re going to learn about the JavaScript framework, Vue.js. To guide our learning, we’re going to build a small application called FlashWord, a flash card game used to practice vocabulary of another language. This series will discuss both Vue’s Options API and Composition API, with a focus on the latter. (If you have no idea what this means, no worries, it will make sense later.)
Command Line Basics for Web Developers (Terminal / Git Bash) - Learn what command line is and why it’s an important tool every web developer should know. We’ll look at setting up command line programs on Mac and Linux (Terminal) and Windows (Git Bash). Finally, we’ll walk through some basic commands for working with files and directories.
HTTPS / SSL via “Let’s Encrypt” on a Nginx Web Server - Learn how to configure HTTPS on a Nginx web server using a free certificate obtained from LetsEncrypt.org.
What is HTTPS (SSL) and why every site should use it - What is HTTPS, how to set it up, and why it’s important your site uses it.
Simple Command Line Text Editing with Nano - Create/edit files directly in command line via the simple to use command line editor, Nano.
Remote Development with VSCode (SSH) - Using VSCode’s Remote Development extension, you can do development work directly on a remote server. This offers a lot of benefits versus the traditional approach of running a development server on your own computer.
Custom Laravel Helpers - Use custom Laravel helpers to create your own globally accessible functions, just like the built in helpers that Laravel provides.