My face

Duncan McClean

Web Developer @ Steadfast Collective and Creator of Statamic Addons


Open-source development packages we've released so far in 2021

I wrote a little about the recent open-source packages we've released at Steadfast Collective.

Using Statamic on Laravel Vapor

When setting up Statamic with Laravel Vapor, there's a couple of things to watch out for. I cover them in this post.

Testing with Stripe Elements in Laravel Dusk

You need to test payments, probably the most important part of your web application. Well, here's a real simple way to do that with Dusk.

Get rid of red bars in Sketch

Red bars can be annoying, especially if you can't get rid of them. They defiantly drove me round the bend.

Install Imagick with Laravel Valet

Quick tutorial on installing Imagick on Mac, alongside your Laravel Valet installation.

When you accidentally block Forge from your server....

Ever accidentally made a Firewall rule that blocked Forge from your server. What a dumb developer thing to do... no worries though, here's how to fix it.

Introduction to Fabric

A little about Fabric - a thing I built to quickly scaffold PHP, Laravel and Statamic packages. (it's got a video too)

Simple Commerce has launched!

The story of me building Simple Commerce - my e-commerce Statamic addon. It's taken months from prototype to launch but I think it's an awesome product.

Fix HTTPS issue in the Statamic 3 Control Panel

Sometimes with the Statamic Control Panel and HTTPS you can run into issues where assets and network requests don't work properly. Here's a single line of code to fix that problem.

How to Bypass Composer's Memory Issue

Sometimes when you're running new versions of Composer you'll run into memory issues. Here's a quick solution to bypass it.

Building a Likes addon in Statamic 3

This post walks you through the process of building a Statamic Likes addon, from bootstrapping to writing the code and setting up tests.

Move S3 objects from one AWS account to another

A really simple tutorial on copying objects over from an old AWS account to a new one.

Use Laravel's Maintenance Mode in Statamic

Now that Statamic is just a package inside a Laravel application, it means you can take advantage of Laravel features. There's a Laravel feature called Maintenance Mode which means visitors will see a 'site down' message.

Setting up for Statamic addon development

Setting up for developing a Statamic 3 addon can be tough. Especially if you've never done package development before. In this post, I guide you through the process of getting everything setup.

2019 Year in Review

I've never written one of these before but I thought it would be a good time to start, especially as I've had a year where quite a few things changed in my life.

Story of my accidental £1.7k bill from Google Cloud Platform

This was a very stressful hour and a half. Somehow my servers went rouge, tried to process 50,000 jobs at once. Each of those calls hit a Google API, racking me up a total in the region of £2700+. Thankfully, I managed to get it adjusted.

Setup Statamic v2 on Laravel Forge

Every site needs to be hosted, and your Statamic site is no different. The recommended solution is a combination of Digital Ocean and Laravel Forge to handle your hosting and provisioning respectively.

Update Customer in Stripe using Laravel Cashier

I've just had the situation where I needed to setup my Laravel app to update my customer's information in Stripe when they change it in my app. The method I used to do this is actually undocumented on the official Laravel Cashier documentation, I found it while I was looking through the Cashier code.

How I built a Web Scraper to create a Bin Collection API

A few months back I wrote some code that would go to my local council's website, search for a street name, open the link, get the bins for that week. When I got it working I was amazed at how easy it was. I was able to just take out content from another site and present it however I wanted.

Using Vuex to store authentication in Local Storage

I'm currently Rebuilding BiblioSpot as a standalone Vue app which fetches data from our private API. At the start of the project, I was wondering, how I should go about handling Authentication? I tried out a few different solutions but this one seems to work, so I'm going to go along with it.

CoderDojo Bridgeton Website

For the last year and a half I have been building the CoderDojo Bridgeton website. A large portion of that time was spent creating a static prototype with HTML and CSS.