All Blog Posts

Getting my daily news from a dot matrix printer

For a while now I've started my day by unlocking my phone and scrolling through different news and social media sites to see what's going on. It's not exactly great for my mental health and I've been trying to cut down on screen time for a while. I still want to stay up-to-date though, especially after I get up in the morning. What about a custom "front page" printed out and ready for me, instead.

Read more →

docker
Nov 29, 2023
What you should do before deploying Docker to production

If you're starting on the journey from local development to production with Docker and don't know all the steps involved, this guide is for you. We'll go over creating production Dockerfiles, tweaking configurations, setting up deployment workflows, and adding seamless CI/CD integration.

Read more →

productivity
Oct 26, 2023
The crippling problem of being able to build whatever you want

I currently have 143 different ideas in a backlog waiting to see the light of day, and it is a constant source of anxiety. Maybe you have a similar list of your own, and like me, tell yourself "if only I had the time to work on them".

Read more →

javascript
Sep 14, 2023
Embracing the monolith with Inertia.js

It's likely that your single-page applications could work more effectively as a monolith, bundled together with backend code. How's this possible? We can use a bridge to span the gap between traditional backends and modern SPA frameworks. Let's talk Inertia.js.

Read more →

laravel
Aug 18, 2023
Making the case for Laravel as a Next.js alternative

Next.js is a powerhouse of a full-stack web framework with features like page-based routing, static-site generation, and dynamic React components, but what if I told you that you could get all of that with just PHP? Let's take a look at what Laravel can provide.

Read more →

laravel
Jul 3, 2023
Fast and cheap ways to deploy a Laravel application

So you have a Laravel application and you want to get it deployed without breaking the bank. Being that Laravel is built on PHP, there's a lot of options to choose from but all of them might not be too good for your wallet. I'll take this time to go through five of my favorite cheap and easy options to deploy a Laravel application.

Read more →

discussions
May 1, 2023
AI is a fad and programming is dead

On one hand, you have people saying that programming as a future career is dead, and it’ll be a couple of years before humans writing code is obsolete. Then there are those who think LLMs like ChatGPT and LLaMA are party tricks, nothing more than a fun experiment that provides minimal value to those building software.

Read more →

laravel
Feb 4, 2023
Using single action controllers in Laravel

This package exposes a few helpful Artisan commands to manage multiple Laravel Sail applications running concurrently on your local environment. All powered by a Traefik Docker container, letting you map custom domain names to your different Laravel applications and handling the incoming traffic to them.

Read more →

laravel
Jan 17, 2023
Introducing Fleet, run multiple Laravel Sail applications at once

This package exposes a few helpful Artisan commands to manage multiple Laravel Sail applications running concurrently on your local environment. All powered by a Traefik Docker container, letting you map custom domain names to your different Laravel applications and handling the incoming traffic to them.

Read more →

Intercept and inspect http requests with reqon

A few weeks ago I had an itch to scratch, I was working with a legacy application that was sending out a ton of curl requests to a production service. The problem was, I had no idea what was in them. I could have dug through the spaghetti and documented each one, but I needed an answer pretty quickly.

Read more →

php
Aug 7, 2022
The difference between Traits, Interfaces, and Abstract Classes in PHP

If you've been working with PHP regularly, chances are you've run across an Interface, Trait, or Abstract Class. At first glance, they might appear to have a few similarities between them, and it can be hard to make out their differences and use cases.

Read more →

vue javascript
Jul 16, 2022
When to use ref vs reactive in Vue

The release of Vue 3 introduced two new ways of adding reactivity to data in your components, ref and reactive. There's been a bit of confusion surrounding which one's better, or when either should be used. I'm here to hopefully shed some light on their differences, and show how I use them in my applications.

Read more →

discussions
May 21, 2022
5 practical web dev projects that aren't todo lists

I first learned web development by finding interesting sites around the web and trying to create them for myself. This of course isn't everyone's style of learning, but if you're one of those who thrive on doing to move forward, keep on reading!

Read more →

php experiments
Mar 25, 2022
I built a receipt printer for GitHub issues

I have a lot of side projects on GitHub. Some of them are kind of popular, and I tend to get issues posted from time to time. The problem though is that usually they kind of get lost in the mix. I've been occasionally writing new issues down on sticky notes whenever I see a notification for one pop-up, but I always wanted an excuse to streamline it a bit more.

Read more →

laravel
Mar 19, 2022
Storing time-series data in InfluxDB with Laravel

I've been running a Laravel application on a Raspberry Pi that handles the bulk of my home automation and monitoring, like keeping track of temperatures and humidity from sensors around my house. Originally I was storing this all on a MySQL database, and yeah that worked good enough. But, after 2 years of continuous data it was starting to get a little bulky.

Read more →

php
Jan 22, 2022
Installing a local Composer package in your PHP project

If you've worked in a PHP project, chances are you've dealt with the Composer package manager. As a full-stack developer, I think it's one of the better ones that I use on a regular basis, consistently improving while remaining relatively simple. One of the more difficult things to do with it though, is adding a local package for use in a larger PHP project.

Read more →

productivity
Jan 17, 2022
Keyboard shortcuts to drastically increase your productivity

Over the last three years, I've been adding to and maintaining a keyboard shortcuts website called Use The Keyboard. Over that time I've amassed some 5100 individual shortcuts spread out across 85 apps, programs, and websites. In this article, I'm going to break down a select few from a variety of programs and sites that I use on a regular basis as a web developer (and occasional designer).

Read more →

docker
Jan 10, 2022
Using Docker Run inside of GitHub Actions

Recently I decided to take on the task of automating my site's build and deployment process through GitHub Actions. I'm using my static site generator Cleaver to handle that, which requires Node + PHP to be installed in order to run the build process. Actions supports both of those runtimes out of the box, but I had just created a perfectly good Docker Image for using Cleaver, and wanted to use that.

Read more →

docker php
Nov 29, 2021
Fixing permissions issues with Docker Compose and PHP

I've been maintaining and iterating on a basic Docker Compose setup for Laravel over the last year or so. It's worked well enough for local development, which was what I originally intended it for. Ever since I released it though, I've had multiple people sending me concerns and GitHub issues surrounding permissions problems.

Read more →

vue javascript
Aug 26, 2021
Why you should be using Vue's new Composition API

You keep hearing about this composition API in Vue. But it's a little scary and intimidating, and why it's so much better isn't really all that clear to you. In this article you'll see exactly why you should learn to use it by comparing the old way to the new way. The examples also start out simple and get more complex, so you can see that the composition API isn't really all that different from what you're used to.

Read more →

Build a solid WordPress dev environment with Docker

Before we get started, I'd like to let you know that this article isn’t a deep-dive tutorial into Docker or an explanation on the intricacies of the toolset. It’s more of a casual walk-through that explores the basics in getting a local development environment set up fast using Docker and Docker Compose.

Read more →

laravel php
Feb 20, 2021
The current state of local Laravel development

Right now there's a lot of options when it comes to working with Laravel on a local development environment. Where there used to be only a handful of options, there's now over a half dozen officially supported ones. In this article, I'm going to try and give a brief synapses of each of them. Provide some pros and cons, along with a basic overview of what you need to get started with each.

Read more →

aws
Jan 22, 2021
Building a free TickTick API with IFTTT and AWS

This article doesn't expect you to have any in-depth familiarity with AWS or IFTTT. However, it is required that you have accounts for both, and recommended that you've at least played around with both of them a little bit. The free tiers of both of these services is all that's required to get your personal API running, so this doesn't cost a single cent.

Read more →

productivity
Sep 1, 2020
Using the magic of mkcert to enable valid https on local dev sites

If you're a web developer, it's very likely you've used local dev sites to build your applications on. Something like example.test or mycoolsite.devlocal, right? When I'm spinning up a basic content site, I really don't pay attention to wrapping it up in https. However, when you start digging into more complex applications, especially those requiring registration and logins, https is useful and sometimes downright required depending on your frontend.

Read more →

productivity
Aug 19, 2020
Converting my Windows PC to use MacOS keybindings

A few months ago I put together a pretty decent Windows PC, mostly for gaming. Although of course I started tinkering here and there with programming on it, and eventually decided to go full in on making it a web dev machine. The timing couldn't be perfect either, as Windows released WSL 2 recently and its performance with Docker Desktop has been incredible.

Read more →

laravel
Jul 3, 2020
5 tips for supercharged Laravel Eloquent queries

I've been working with Laravel for the last five years or so, and over that time I've come across a few cases where I needed a unique or atypical way of returning a piece of data from my application. Using Eloquent makes fetching data with Laravel easy, but there's still a few use cases where it took me some digging and understanding to figure out how to do what I was trying to accomplish.

Read more →

laravel vue
May 11, 2020
Authenticating a Vue SPA is easy with Laravel Sanctum

Released earlier this year, Laravel Sanctum (formerly Laravel Airlock) is a lightweight package to help make authentication in single-page or native mobile applications as easy as possible. Where before you had to choose between using the web middleware with sessions or an external package like Tymon's jwt-auth, you can now use Sanctum to accomplish both stateful and token-based authentication.

Read more →

laravel docker
Apr 23, 2020
Building an interactive Raspberry Pi dashboard with Laravel, Grafana, and Docker

I'm really interested in electronic engineering, specifically using it to record data and analytics around my house. I've been monitoring the temperature and humidity on my back porch for over a year using a Raspberry Pi Zero and a DHT22 sensor, pushing the data every minute to a more powerful Raspberry Pi 3 Model B in my living room.

Read more →

laravel
Apr 12, 2020
My favorite Laravel helpers and how to use them

As a full-stack PHP developer who works with Laravel on a day-to-day basis, I'm always looking for shortcuts and helpful methods in the framework that I can use to cut down on development time or code complexity.

Read more →

laravel
Mar 31, 2020
I built a static site generator to help during COVID-19

A few months ago, I published an article about a static site generator I made called Cleaver. Before this weekend, I mainly was just letting it sit idle. Fixing a few issues that sprung up, figuring out what features I should be adding to it, et cetera.

Read more →

laravel aws
Mar 12, 2020
Getting started with Amazon S3 storage in Laravel

I've worked in the past on a few projects that use Amazon's S3 service to store images and files from Laravel applications. Even though the functionality is pretty much built into the framework, the process of getting started can be a little jarring, especially to those who don't have a whole lot of experience with the AWS suite.

Read more →

laravel docker
Feb 19, 2020
Crafting a better local Laravel dev environment with Docker

This tutorial is built on a previous one that I wrote a few months back called The beauty of Docker for local Laravel development. While this article is beginner-friendly, it leaves out a lot of the original setup for the nginx, php, and mysql containers. I'd recommend that you start off with the previous tutorial first, and then move on to this one.

Read more →

laravel aws
Feb 10, 2020
Launching PDFBlade - Yet Another HTML to PDF API

There's already a few HTML to PDF APIs that are on the market today. They do their job well, and most have pretty detailed documentation that makes it easy to get started. However, my biggest issue was the billing, and I needed to scratch my own itch.

Read more →

productivity
Feb 6, 2020
The satisfaction in treating your side projects like bonsai

I’m a serial starter. If half-finished projects were dollars, I’d be a millionaire. A little over a year ago I wrote an article about overcoming my issues finishing things that I started, but in the end that lead to a new, unforeseen problem, maintaining what I launch.

Read more →

laravel
Dec 26, 2019
Cleaver - A blazing-fast static site generator using Laravel’s Blade

I know what you’re probably thinking, “Oh boy, another static site generator”. And you’d be right, but I’m hoping that the one I’ve created is a little different than ones you’ve been exposed to.

Read more →

laravel
Nov 27, 2019
How to use Laravel’s bind and singleton methods

A while back, someone pointed out that in my Laravel package tutorial, my use of a singleton method was completely unnecessary. Truth be told, up until this point I really hadn’t looked into or thought about the bind or singleton methods that I’ve seen in the source code of other packages. I decided to do some digging and take time learning how, and when, to use those methods in my own applications.

Read more →

laravel vue
Sep 21, 2019
Four ways to pass data from Laravel to Vue

I’ve been working on projects that use both Vue and Laravel for the last two to three years, and during the start of each’s development I have to ask myself “How am I going to pass my data from Laravel to Vue?”. This applies to both applications where the Vue frontend components are tightly coupled to Blade templates, as well as single-page applications running completely separate of the Laravel backend.

Read more →

laravel vue
Jul 21, 2019
Adding real-time updates to your Laravel and Vue apps with laravel-websockets

Earlier this month I launched listpal.co, a to-do app that included websockets functionality so that each user with the list open would see updates from everyone else. It was definitely a learning experience and my first time really diving into the world of Vue + websockets combined. With the help of the laravel-websockets package, it’s super easy to get a websockets server started in a new (or existing) Laravel application.

Read more →

javascript
May 29, 2019
So you want to get started with AR.js

Augmented Reality seems like it’s everywhere. Between Snapchat filters, Google stickers, IKEA’s furniture preview, and now Shopify’s AR Quick Look feature, putting 3D objects in the physical world seems to be more desirable than ever.

Read more →

The beauty of Docker for local Laravel development

You can think of Docker as a watered-down VM. Why is this helpful or useful? Well if you have multiple production servers running different versions of Linux, PHP, or any other web software, those variables can be replicated in your container and you can be guaranteed that the application will run precisely how it’s intended to on the production machine.

Read more →