The Archives
All articles by date.
-
The Axios Supply Chain Attack: What Laravel Developers Need to Know
A compromised npm account turned Axios into a RAT dropper for 3.5 hours. Here's what happened, why AI coding agents make supply chain attacks worse, and 10 protections every Laravel project should have.
-
I Just Tried the New laravel-best-practices Skill
Laravel Boost shipped a new laravel-best-practices skill that checks your code against 100+ rules. I ran it against Growth Method and fixed 7 priorities -- security, performance, queues, and more. Here's the full breakdown.
-
Turning a REST API into AI Tools in Laravel
How to wrap any REST API — like Google Search Console — as AI tools in Laravel, without needing an MCP server. Covers OAuth, a service wrapper, tool classes, and wiring it all together.
-
Your (Flux UI) Rich Text Editor (Probably) Shouldn't Have a Scrollbar
The Flux editor defaults to a 500px max height, creating nested scrollbars on full-page forms. Here's how to fix it, why context matters, and what the industry standard actually is.
-
Building a Reusable AI Chat Component with the Laravel AI SDK and Livewire Streaming
How we built one generic Livewire chat component that works with any AI agent — streaming responses, MCP tool support, and per-team security boundaries — using the Laravel AI SDK.
-
Pulse vs Filament vs Nova: Choosing the Right Laravel Admin Panel
Two days after removing Laravel Pulse, I reinstalled it to build an admin dashboard for Growth Method. Here's how I chose Pulse over Filament and Nova, built four custom cards, and fixed a nasty serialization bug in Laravel 13.
-
An Introduction to the Laravel Scheduler
How the Laravel Scheduler works, the three automated tasks we run at Growth Method, whether a per-minute cron job is wasteful, and the production safeguards every app should use.
-
Do You Actually Need a Super Admin?
I spent two years with an is_admin flag in my users table before asking whether I needed it at all. Here's the decision framework that led to removing it entirely.
-
Implementing Semantic Search with the Laravel AI SDK
How we replaced Algolia with pgvector semantic search in our Laravel app — saving money, removing a dependency, and getting better results.
-
Why I Replaced Laravel Horizon with a Forge Queue Worker
Laravel Horizon was overkill for my app. Here's why I replaced it with a simple Forge queue worker, what the Laravel community says about it, and a gotcha with retry_after that could cause duplicate jobs.
-
Migrating from MySQL to PostgreSQL on Laravel Forge
I migrated a production Laravel app from MySQL to PostgreSQL on Laravel Forge. Here's the full process — provisioning, data migration with pgloader, the gotchas that broke things, and how to roll back safely.
-
I Tried Laravel Shift's Test Generator
What happened when I ran Laravel Shift's Test Generator on a Laravel 13 codebase with Pest 4. What it generated, what broke, and what was actually useful.
-
Why I Removed Laravel Pulse (and You Might Not Need It Either)
I had Laravel Pulse running in production for over a year alongside Sentry. Here's why I removed it, how the two tools differ, and the step-by-step process for cleanly uninstalling Pulse from a Laravel app.
-
Replacing a Custom Notification System with Flux::toast()
How I replaced a hand-rolled Alpine.js notification system across 17 files with Flux's built-in toast component. Fewer files, less custom code, and better conventions.
-
Updating My Codebase to Follow the Laravel Way
I audited my Laravel app against the conventions that Laravel Shift checks for and fixed everything that mattered -- return types, environment checks, stale code. Here's what I changed, what I skipped, and why.
-
Upgrading to Laravel 13 with Laravel Shift & Laravel Boost
How I used Laravel Shift and Laravel Boost (via Claude Code) together to upgrade a production app to Laravel 13 — and why using both gave me the best of both worlds.
-
Backups Are the Most Important Thing You're Not Doing
AI agents can delete your database, wipe your files, and destroy months of work in seconds. Here's why backups matter more than ever for agentic engineers, and how to set them up with Laravel and Backblaze.
-
The Laravel Skills Directory — And Why It Matters for Agentic Engineers
Laravel launched a community-powered Skills Directory at skills.laravel.cloud — an open collection of reusable AI agent skills for Laravel and PHP. Here's why it matters, especially if you're building with AI agents and can't write a line of PHP.
-
What Would Taylor Otwell Do?
WWTD — What Would Taylor Do? — is a five-word prompt that changed how I learn Laravel. After using it in 49 coding sessions, here's why it works, seven real examples, and how it evolved from a one-off question into a reusable AI skill.
-
YAGNI: The Most Useful Word I Learned Building a Laravel App
Real examples of applying YAGNI (You Aren't Gonna Need It) while building a Laravel SaaS app with an AI coding agent. From polymorphic relationships to vector databases, the simplest solution almost always wins.
-
I'm Not a Developer. I'm an Agentic Engineer.
Agentic engineering is a new discipline — not vibe coding, not traditional development. It's directing AI agents to build real software with intent, oversight, and taste. Here's what it means and why it matters.
-
Why Foreign Key Cascades Don't Work With Soft Deletes (And What To Do Instead)
Foreign key cascadeOnDelete looks like the perfect cleanup solution — until you use soft deletes. Here's why it silently fails, three ways to fix it, and what Taylor Otwell recommends.
-
Why Laravel Uses a Separate Testing Database (And How It Works)
Why every Laravel test failed with "Unknown database 'testing'", what the testing database actually does, and how LazilyRefreshDatabase keeps your real data safe.
-
Everything Announced at Laracon EU 2026 (and What It Means for Non-Developers)
The biggest announcements from Laracon EU 2026 in Amsterdam — Laravel 13, passkeys, the AI SDK going stable, NativePHP going free, and more — filtered through what actually matters if you're building with Laravel but don't write code.
-
Migrating from PrismPHP to the Laravel AI SDK
Migrating from PrismPHP to Laravel's official AI SDK broke two agents silently. Here's what went wrong with temperature support, strict mode schemas, and error handling — and how to fix each one.
-
I Asked AI to Audit My Laravel App's Security. It Found 4 Things I'd Never Have Caught.
A real security audit of a Laravel app found IDOR vulnerabilities in Livewire components, XSS through strip_tags(), mass assignment with $guarded = [], and predictable share tokens. Here's what was wrong and how I fixed each one.
-
My Signup Flow Silently Failed and Nobody Told Me
A user clicked Create Account and nothing happened. Three bugs were hiding behind that one symptom — hardcoded database IDs, a synchronous email that timed out, and a validation error on the wrong step.
-
Everything That Went Wrong When I Tried to Delete a Team
Deleting a team in a multi-tenant Laravel app broke transactions, orphaned pivot rows, and wiped user data across teams. Here are the five things that went wrong and how I fixed them.
-
Why My Livewire AI Chat Flashed Raw Markdown Before Rendering
Streaming AI responses in Livewire caused a flash of raw markdown (**bold text**) before the HTML rendered. The fix was moving markdown conversion server-side and removing a 5-step client-side pipeline.
-
I Can't Write a Single Line of PHP. Here's What I Can Do.
Updated:I literally cannot write a line of PHP from memory. But I've shipped a full Laravel SaaS, fixed N+1 queries, handled security reports, and made 120+ commits in two months. Code is no longer the bottleneck.
-
I Switched WYSIWYG Editors and All My Images Disappeared
Switching from Froala to TipTap broke every image in our app. Here's how we cleaned the legacy HTML — and the Laravel migration bug that silently skipped half our records.
-
Your Laravel App Is Shipping JavaScript Nobody Uses
A performance audit found three JavaScript libraries shipping on every page that nothing in the app actually used. Removing them cut the bundle by 28%.
-
What the Heck Is Blaze and Why Do I Need It?
Laravel Blaze makes your Blade components render up to 97% faster with zero code changes. A plain-English guide for non-traditional developers to the optimized compiler, memoization, and code folding — and why Flux + Blaze is the easiest performance win you'll ever get.
-
Choosing MySQL vs PostgreSQL for Your Laravel Application
Updated:I migrated my production Laravel app from MySQL to PostgreSQL. Here's what changed in the code — DATEDIFF to Carbon, FIELD() to a reusable scope, LIKE to whereLike — plus what the Laravel community thinks and what Taylor Otwell would do.
-
Why Laravel Is Perfect for Non-Traditional Software Developers
Laravel's conventions, curated ecosystem, and readable syntax make it uniquely suited for non-traditional developers building real products with AI. Here's why.
-
What Building a Laravel App With AI Actually Taught Me About AI
Five things I learned about AI by building a real Laravel app with Claude Code. Not from reading articles — from doing the work and getting it wrong.
-
I Asked AI to Audit My Page Speed. It Found 9 Issues.
Updated:One question to Claude Code — "is there anything obvious that could be having a negative impact on performance?" — turned up 9 issues on a single page. Here's what it found and why each one matters.
-
Why Flux UI Ignored My Date Format (And How I Fixed It)
When Flux UI's chart format prop silently does nothing, the fix is to format your data in PHP instead. Three attempts, one lesson.
-
Why My Flux UI Checkbox Didn't Work (And When to Use Native HTML Instead)
Flux UI's checkbox component silently does nothing in traditional HTML forms. Here's why, and when you need native HTML instead.
-
Git for Non-Developers: You Don't Need to Learn the Commands
You don't need to memorise git commands to ship Laravel code. Here's how I learned git by asking an AI assistant to walk me through it — and how it eventually just handled it for me.
-
Fixing Common Local Dev Errors When You First Pull a Laravel Project
A practical guide to fixing the most common errors you'll hit when pulling a Laravel project locally for the first time — S3, Algolia, Livewire, and more.
-
How Laravel Migrations Work (And Why You Don't Touch the Database Directly)
A plain-language explanation of Laravel migrations for non-developers. What they are, why they exist, and how they work in practice — with a real example from changing a campaign duration setting.
-
Three Bugs Hiding Behind One Production Error
A single 500 error on my idea edit page turned out to be three separate bugs stacked on top of each other. Here's how I found and fixed each one.
-
Why updateOrCreate With a Null ID Always Creates Duplicates
Laravel's updateOrCreate silently creates duplicates when passed a null ID. Here's why SQL id = NULL never matches, and the simple guard to fix it.
-
Small UX Fixes That Make Your Laravel App Feel More Polished
A collection of small but meaningful UX improvements for Laravel apps — external link indicators, preventing layout shift, and more. Real examples from building a Livewire app.
-
Preventing Visual Shift in Your Laravel App
Three types of visual shift that make your Laravel app feel janky, and the patterns to fix each one. Conditional UI, loading states, and modal content.
-
How to Handle a Spam Vulnerability Report (And What to Actually Fix)
I received a scary-sounding security vulnerability report about my Laravel app. It was mostly spam — but it highlighted two real gaps worth fixing.
-
Livewire Components vs Blade: A Non-Developer's Guide to Making the Right Choice in Laravel
When should you use a Livewire component and when should you use Blade? A practical guide for non-developers building with Laravel, with real code examples and quotes from Taylor Otwell.