Featured posts

Everything else

I'm Working on a New Book Project

Feb 18, 2024

The PHP Spellbook: Practical Charms for Data Structures & Algorithms is a light-hearted, down-to-earth journey through the magical work of data types and algorithms for all PHP developers.
That Escalated Quickly: All the New Things

Dec 10, 2023

The past six months or so have been incredibly busy. What started as a new article series about customizing Statamic's search escalated quickly.
Troubleshooting a Statamic Illegal Offset Type Error when Viewing Collection Entries in the Control Panel

Nov 30, 2023

In this post I talk about how I resolved a mysterious illegal offset type error when viewing collection entries within the Statamic Control Panel.
Creating Simple HTTP Redirect Routes from a Statamic Site

Nov 29, 2023

Generating a custom Laravel routes file from a Statamic website to redirect to a new domain.
Disabling Vite File Hashes

Nov 27, 2023

Disabling file hashes in Vite output can be accomplished by modifying your project's vite.config.js
Implementing a Custom Laravel Blade Precompiler for Volt and Livewire

Sep 4, 2023

Learn how to implement a custom component compiler for Laravel's Blade templating language in this post. We will build a custom compiler that transforms custom component syntax into a Livewire component, leveraging new features provided by Volt. Follow along as we set up the Blade precompiler and parse custom Blade component syntax. Get started by grabbing the example code on GitHub, and don't forget to install the necessary dependencies.
Creating a Hybrid Cache System for Statamic: Part Five

Sep 3, 2023

Part 5 of 6 covers implementing a cache namespace and labeling system, which we can use to target multiple cache entries simultaneously for invalidation.
Creating a Hybrid Cache System for Statamic: Part Four

Sep 3, 2023

Part 4 of 6 covers implementing new features to set arbitrary expiration times from within a template and mechanisms to invalidate all cached responses at once.
Creating a Hybrid Cache System for Statamic: Part Six

Sep 3, 2023

Part 6 of 6 covers implementing custom Artisan commands to retrieve information about our cache, invalidating responses returned from Laravel routes and controllers, excluding pages with CSRF tokens, and examples of how to integrate with third-party systems like Torchlight.
Creating a Hybrid Cache System for Statamic: Part Three

Sep 3, 2023

Part 3 of 6 covers managing response headers, configuring the custom cache system, and implementing mechanisms to bypass the cache entirely.
Creating a Hybrid Cache System for Statamic: Part Two

Sep 3, 2023

Part 2 of 6 covers invalidating cached responses when template changes are detected and detecting request content dependencies, such as entries, taxonomies, and assets.
Creating a Hybrid Cache System for Statamic

Sep 3, 2023

Part 1 of 6 covers experimenting with various cache systems, techniques, and organization of our custom cache system.
Best Practices for Securing Your Development Projects

May 4, 2023

Securing development projects means integrating security at each stage of development. Let's discuss the best practices to secure your development projects.
Creating a Simple Honeypot Field in Laravel

Apr 11, 2023

Learn how to implement a honeypot form mechanism using Laravel. This security measure helps catch bots and automated scripts by adding an inconspicuous form field that human users should leave empty. You can implement the honeypot in two different ways: by creating a custom middleware class or by adding the logic directly to the form's action. Additionally, you can create a custom Blade directive to simplify adding the hidden field to multiple forms.

Some absolutely amazing
people

The following amazing people help support this site and my open source projects ♥️
If you're interesting in supporting my work and want to show up on this list, check out my GitHub Sponsors Profile.