Hello, World! 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 fortnightly newsletter for Laravel and JavaScript developers.

Powered by Buttondown

Articles

A collection of tutorials, thoughts and brain dumps.

Parsing Markdown with PHP: Getting Started

Markdown is a great way of making notes, writing articles and generally managing content. Let's take a look at how quickly you can begin using Markdown in your PHP applications.

Published 3 weeks ago | Updated 3 weeks ago

Unconventional Laravel: Responsable classes

Sometimes your controllers can get rather large, especially if you have lots of conditions and data formatting. Have you ever considered moving some of that complexity out into a dedicated response class?

Published 1 month ago | Updated 1 month ago

Unconventional Laravel: Middleware-as-a-Service-Provider

Have you ever used a service provider to set a default value for a third-party library? Have you ever done this based on the current request or URL? Have you ever considered doing this inside of middleware instead?

Published 2 months ago | Updated 2 months ago

Unconventional Laravel: Custom Pipeline Classes

Laravel makes use of the internal `Pipeline` class and it's more common in userland too, but have you ever considered tidying up these pipeline processes with custom pipeline classes?

Published 2 months ago | Updated 2 months ago

Writing Reusable Alpine Components

Reusability is important when it comes to scaling projects and future-proofing the maintainability of a project. Let's take a look at how you can write more re-usable components in Alpine.

Published 3 months ago | Updated 3 months ago

Accessing Helper Methods in Your Livewire Components

Helper methods can be, well, helpful. Did you know that you can actually write helper methods in your Livewire classes and use them really easily in your Blade views?

Published 3 months ago | Updated 3 months ago

Creating Custom Magic Variables in Alpine.js

We all come across tasks that are repetitive and probably struggle to find ways of making them more re-usable in our Alpine components. Since v2.5 we can register custom magic variables that can help us out with that.

Published 3 months ago | Updated 3 months ago

Replicating `$.slideToggle` with Tailwind CSS & Alpine.js

One of jQuery's most powerful and popular features is the `slide` helpers and lots of people would like to replicate these in Alpine, so let's take a look at how we can do just that.

Published 3 months ago | Updated 3 months ago

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 months ago | Updated 4 months 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 5 months ago | Updated 5 months 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 5 months ago | Updated 5 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 5 months ago | Updated 5 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 6 months ago | Updated 1 month 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 6 months ago | Updated 6 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 6 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 7 months ago | Updated 6 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 7 months ago | Updated 6 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 7 months ago | Updated 6 months ago

What is Alpine.js?

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

Published 8 months ago | Updated 6 months ago