Browse category Blog
MySQL JSON Columns
MySQL’s JSON column type has been around since version 5.7, but it’s one of those features where the gap between “I know it exists” and “I know when and how to use it well” is surprisingly wide. Used correctly, JSON columns give you schema flexibility exactly where you need it. Used poorly, they become a […]
Claude Code for PHP Developers
If you’ve been hearing about Claude Code but assumed it’s mostly for the JavaScript and Python crowd, it’s time to take another look. Claude Code is a command-line AI coding tool that works directly in your terminal, and it’s remarkably effective for PHP development. Whether you’re building with Laravel, Symfony, or vanilla PHP, there are […]
Community Corner: Spec-Driven Development with Holly Schilling
In this episode, Scott talks Holly Schilling about her work on the php tek 2026 mobile app and spec-driven development. Links: Our Discord – https://discord.gg/aMTxunVx Buy our shirts – https://store.phparch.com/products/community-corner-podcast-t-shirt Holly’s Links: Discord: TheCodeLorax Mastodon: https://tech.lgbt/@TheCodeLorax Blog: https://EventuallyWrong.com Scott’s Links: Website – https://scott.keck-warren.com/ Bluesky – https://bsky.app/profile/scottkeckwarren.bsky.social LinkedIn – https://www.linkedin.com/in/scott-keck-warren-91689810/ Mastodon – https://phpc.social/@scottkeckwarren PHP Architect […]
Neovim PHP Development Setup
If you’ve ever watched a colleague fly through code in NeoVim and thought “that looks fast but I’d never figure out the config,” the barrier to entry has dropped significantly. LazyVim — a NeoVim distribution that ships with sensible defaults and a plugin manager — gives you a fully functional IDE experience within minutes, with […]
PHP 8.5 Pipe Operator
PHP 8.5 shipped with a feature that functional programming enthusiasts have been requesting for years: the pipe operator (|>). If you’ve used pipes in Unix shells, Elixir, F#, or even JavaScript proposals, the concept will feel immediately familiar. If you haven’t, you’re about to discover one of the cleanest ways to express data transformations in […]
Why skipping Eloquent doesn’t mean skipping SQL injection protection
Video version at: https://youtu.be/gAVfQhPw8Do A few weeks ago, I posted something on LinkedIn that ruffled some feathers. Here’s what I said: “Defaulting to the ORM for everything isn’t a best practice. It’s just the path of least resistance.” The replies came in fast, and a good chunk of them said the same thing: “That’s unsafe! […]
How to use git rebase without breaking your team’s history
Video version: https://youtu.be/5n2VZS_YPv0 Let’s say you’re working on a feature branch called add-discount-codes. You’ve been at it for a couple of days, and you’ve got five commits with all of your work done. A team member mentions that git rebase can make sure you have the most recent changes from the “main” branch. So you […]
Token-Oriented Object Notation (TOON) For PHP Developers
See the video version at https://youtu.be/Nk9ayWxkJ1M It’s an unfortunate piece of our current developer reality that a lot of our day is spent worrying about how many tokens we’re spending. Every time you send structured data to an LLM API, you’re paying for tokens. And if you’re sending arrays of similar objects as JSON, you’re […]
Ubuntu Firewall Setup in Less Than 5 Minutes (Plus One Step That Will Lock You Out)
Setting up a Virtual Private Server (VPS) without a firewall is asking for trouble. Ideally, you’d have a dedicated security person to handle all of this, but that’s rarely the case. One thing I always do on a fresh Linux server is configure a firewall. It used to be a real headache, but […]
Advanced Unique Index Patterns for Soft Deletes (MySQL and PostgreSQL)
Tell me if this has ever happened to you: a user contacts support because they’re randomly seeing different order histories every time they log in. Sometimes they see their recent purchases, sometimes they see orders from years ago, and sometimes they see nothing at all. After several hours of debugging, you discover that […]


