Hi, I'm Matt.

I build software and love to share my experience.

Colorado-based web developer with over 20 years of experience on the web, and almost 15 years of that spent designing and building SaaS applications. I write about web development and how to take complicated problems and turn them into solutions that feel easy.

What I'm Building

Shop Counter

In Development

Shop Counter is a production tracking application for machine shops and independent makers. It provides a fast way to log what got made, what got scrapped, and where the time went. Operators record each run as it happens: the machine, the part, the clock, the counts. The hours that aren't spent making parts get logged too, so setup, changeovers and maintenance show up in the numbers. The reporting turns all of that into trends, scrap analysis, and a picture of how each machine and operator is actually doing.

Linkrail Analytics

In Development

A web analytics platform built to be dead simple to understand. No dashboards you need a manual for, just clear answers about your traffic.

Writing

Jul 23, 2026

A Composable PHP Component System

React taught me to think in components with typed props. This is how I get the same thing in plain PHP: a tiny abstract base, a typed options object per component, and a static factory that renders.

Jul 21, 2026

A Tight Content Security Policy for Laravel in One Middleware

A strict Content Security Policy sounds like a project. In Laravel it is one middleware and a handful of directives. Here is the whole thing, why each line is there, and how to keep it from breaking local dev.

Jul 17, 2026

Building an ORM to Understand the Ones I Use Every Day

Build the tools you rely on. Not to replace them, but to understand them. Here's how working through an ORM decision turned Doctrine's typed fields and Eloquent's casts from magic I used into choices I could actually read.

Jul 15, 2026

Encrypted Form Tokens: Hiding Server-Side Dispatch from the HTML

Most CSRF tokens only prove a request came from your form. This article explains how to take form tokens further: they can carry the processor class and method to run, so the URL becomes a hint and the token becomes the source of truth.

Jul 13, 2026

Tokenize Before You Prompt: LLM Insights Without Exposing Data

Swap data for abstract tokens before calling an LLM, then detokenize the response. You get AI-powered insights while the real data never leaves your server.

Jul 7, 2026

Typed & Testable Views in PHP

Replace loose template variables with typed PHP view classes that enforce contracts between controllers and views, compose like React components, and unit test without booting a framework.

Jul 1, 2026

A New Codebase Every Morning

AI can build a feature in an afternoon that used to take a week. That's great, but that speed comes with a cost, and it is not just in the code.