Lesson
Deployer, the PHP deployment tool: get started
Deployer puts PHP sites live with no downtime and rolls back with one command. Install it, write a deploy.php, deploy a Laravel or WordPress site and roll back.
3 min read
Lesson
Learning
Longer guides, explainers and cheat sheets, for when you want to learn a tool, not just copy a fix.
Lesson
Deployer, the PHP deployment tool: get started
Deployer puts PHP sites live with no downtime and rolls back with one command. Install it, write a deploy.php, deploy a Laravel or WordPress site and roll back.
3 min read
Lesson
MAMP: set up a local site with a virtual host
Give each local project its own address, like mysite.test, in MAMP on a Mac. I turn on virtual hosts, add the site, map the name in /etc/hosts and restart.
3 min read
Lesson
MySQL JOINs explained: INNER, LEFT, RIGHT, FULL, CROSS, self
What each MySQL JOIN returns, shown with two small tables and the real rows that come back. Plus how I build a FULL OUTER JOIN, which MySQL doesn't have.
7 min read
Lesson
What is Laravel Blade? Templates, layouts and components
Blade is Laravel's template language. It gives you HTML files with {{ }} for safely escaped output, @ directives for loops and conditions, layouts and components.
4 min read
Lesson
Add a README.md to every project (with a template)
A good README tells the next developer what a project is, how to run it and how to deploy it. What I put in mine, a template to copy and the Markdown you need.
3 min read
Lesson
Shopify theme development: get started with Shopify CLI
Build Shopify themes on your own computer with Shopify CLI. I install it, start from the Skeleton theme, preview with theme dev, then push and pull.
4 min read
Lesson
Set up Git on your server and deploy with a push
Install Git on a Linux server, connect with SSH keys, and deploy with git push. I use a bare repository and a hook, or let the server pull from GitHub or GitLab.
3 min read
Lesson
Flexbox cheat sheet: every property, value and default
Every flexbox property on one page, with its values and defaults. Plus gap, the layouts I build every week, and why the old -webkit-box prefixes can go.
5 min read