Hello! I'm Ryan.

I'm a web developer, wannabe writer and space geek based in Essex, United Kingdom.

I currently work at Surewise where I build and maintain insurance systems.

Want to stay up to date with my articles, videos and other resources?

I run a bi-weekly newsletter for Laravel and JavaScript developers.

Powered by Buttondown


A collection of tutorials, thoughts and brain dumps.

Unconventional Laravel: Route groups and `$router`

When registering grouped routes using `Route::group()`, it's normal to register those nested routes using the `Route` facade, but have you ever used the `$router` variable?

Published 4 weeks ago | Updated 2 weeks ago

Add Classes to Active Link in Laravel

Adding a class to make the current page "active" in your application's navigation is a simple UI improvement. Let me show you how I typically do this in my apps.

Published 1 month ago | Updated 1 month ago

Manually Refreshing a Livewire Component

Livewire provides a clean API for automatically polling and refreshing a component, but what if you want to manually refresh a component?

Published 2 months ago | Updated 2 months ago

Clearer Time Values with Carbon

How often do you see something like `2 * 24 * 60 * 60` and wonder what that value actually represents and what those magical numbers mean? Don't worry, Carbon's constants are here to help you out.

Published 2 months ago | Updated 2 months ago

Simple Repositories in Laravel

Abstracting common queries in your Laravel applications can be done in many ways. Let's take a look at the simplest way using the "Repository pattern".

Published 2 months ago | Updated 2 months ago

Directive precedence in Alpine

Lots of people get caught out by the fact that Alpine evaluates each directive in a particular order. Let's look at the order it uses,

Published 2 months ago | Updated 2 months ago

Maintainable Alpine Components

Writing maintainable code is an important part of any software project. Let's take a look at some ways you can make your Alpine components more maintainable.

Published 2 months ago | Sponsors only

Track Your Users Last Activity in Laravel

It's quite common to keep tabs on when an authenticated user last used your web application. The information can be really useful when calculating software adoption, usage frequency and return rate.

Published 3 months ago | Updated 2 months ago

Anonymous Alpine Components

One of Alpine's main selling points is that it provides most of the reactive goodies that Vue and React do at a much lower cost. What if you don't need reactivity for your site? Well, Alpine can definitely still fit into your stack!

Published 3 months ago | Updated 2 months ago

Pseudo Computed Properties in Alpine

One feature that I love in Vue is computed properties. You access them in the same way as normal data properties, but you can dynamically generate the value. Let's take a look at how we can do this in Alpine.

Published 3 months ago | Updated 2 months ago

What is Alpine.js?

A brief look at the new Vue-inspired JavaScript framework, with no virtual DOM.

Published 4 months ago | Updated 2 months ago