41554 blogs · [
{
"id": "01a087b2-b851-72b5-be87-3bf08de78baf",
"title": "How a 6KB Column Was Slowing Down Every Page in My Laravel App",
"url": "https://notesonlaravel.com/excluding-large-columns-laravel/",
"published_at": "2026-04-09T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f617d14da4",
"title": "Adding User Impersonation to Laravel (The Right Way)",
"url": "https://notesonlaravel.com/laravel-impersonate-users/",
"published_at": "2026-04-09T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f617f5b43b",
"title": "When Your Laravel App Needs Both MCP and API Access",
"url": "https://notesonlaravel.com/mcp-and-api-integration-laravel/",
"published_at": "2026-04-09T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61816b3f7",
"title": "Removing Spatie Permissions for a Single Laravel Gate",
"url": "https://notesonlaravel.com/removing-spatie-permissions/",
"published_at": "2026-04-08T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f618c1f2c9",
"title": "The Axios Supply Chain Attack: What Laravel Developers Need to Know",
"url": "https://notesonlaravel.com/axios-supply-chain-attack/",
"published_at": "2026-03-31T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f6193c17ab",
"title": "I Just Tried the New laravel-best-practices Skill",
"url": "https://notesonlaravel.com/laravel-boost-best-practices-audit/",
"published_at": "2026-03-25T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61a012f39",
"title": "Turning a REST API into AI Tools in Laravel",
"url": "https://notesonlaravel.com/rest-api-to-ai-tools-laravel/",
"published_at": "2026-03-25T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61a272ece",
"title": "Your (Flux UI) Rich Text Editor (Probably) Shouldn't Have a Scrollbar",
"url": "https://notesonlaravel.com/flux-editor-scrollbar/",
"published_at": "2026-03-24T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61b059026",
"title": "Building a Reusable AI Chat Component with the Laravel AI SDK and Livewire Streaming",
"url": "https://notesonlaravel.com/reusable-ai-chat-component/",
"published_at": "2026-03-24T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61b43a757",
"title": "Pulse vs Filament vs Nova: Choosing the Right Laravel Admin Panel",
"url": "https://notesonlaravel.com/laravel-pulse-admin-dashboard/",
"published_at": "2026-03-23T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61b494dc0",
"title": "An Introduction to the Laravel Scheduler",
"url": "https://notesonlaravel.com/laravel-scheduler/",
"published_at": "2026-03-23T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61b92ea67",
"title": "Do You Actually Need a Super Admin?",
"url": "https://notesonlaravel.com/laravel-super-admin/",
"published_at": "2026-03-23T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61bf4afe0",
"title": "Implementing Semantic Search with the Laravel AI SDK",
"url": "https://notesonlaravel.com/semantic-search-laravel-ai-sdk/",
"published_at": "2026-03-23T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61c4a1a87",
"title": "Why I Replaced Laravel Horizon with a Forge Queue Worker",
"url": "https://notesonlaravel.com/laravel-horizon-forge-queue/",
"published_at": "2026-03-21T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61ca6494c",
"title": "Migrating from MySQL to PostgreSQL on Laravel Forge",
"url": "https://notesonlaravel.com/laravel-mysql-to-postgres-migration/",
"published_at": "2026-03-21T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61cbee9b1",
"title": "I Tried Laravel Shift's Test Generator",
"url": "https://notesonlaravel.com/laravel-shift-test-generator/",
"published_at": "2026-03-21T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61d509388",
"title": "Why I Removed Laravel Pulse (and You Might Not Need It Either)",
"url": "https://notesonlaravel.com/removing-laravel-pulse/",
"published_at": "2026-03-21T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61de0aa55",
"title": "Replacing a Custom Notification System with Flux::toast()",
"url": "https://notesonlaravel.com/migrating-to-flux-toast/",
"published_at": "2026-03-20T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61e5587b3",
"title": "Updating My Codebase to Follow the Laravel Way",
"url": "https://notesonlaravel.com/the-laravel-way/",
"published_at": "2026-03-20T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61f332eaf",
"title": "Upgrading to Laravel 13 with Laravel Shift & Laravel Boost",
"url": "https://notesonlaravel.com/upgrading-to-laravel-13/",
"published_at": "2026-03-20T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61f460a0a",
"title": "Backups Are the Most Important Thing You're Not Doing",
"url": "https://notesonlaravel.com/laravel-backups/",
"published_at": "2026-03-13T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61f7fda4b",
"title": "The Laravel Skills Directory — And Why It Matters for Agentic Engineers",
"url": "https://notesonlaravel.com/laravel-skills-directory/",
"published_at": "2026-03-13T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61fdaa03d",
"title": "What Would Taylor Otwell Do?",
"url": "https://notesonlaravel.com/laravel-what-would-taylor-otwell-do/",
"published_at": "2026-03-10T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f61fdf9e59",
"title": "YAGNI: The Most Useful Word I Learned Building a Laravel App",
"url": "https://notesonlaravel.com/laravel-yagni/",
"published_at": "2026-03-09T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f6206bb1ed",
"title": "I'm Not a Developer. I'm an Agentic Engineer.",
"url": "https://notesonlaravel.com/agentic-engineering/",
"published_at": "2026-03-08T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f6213052e4",
"title": "Why Foreign Key Cascades Don't Work With Soft Deletes (And What To Do Instead)",
"url": "https://notesonlaravel.com/laravel-fk-cascade-soft-deletes/",
"published_at": "2026-03-08T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62204e306",
"title": "Why Laravel Uses a Separate Testing Database (And How It Works)",
"url": "https://notesonlaravel.com/laravel-testing-database/",
"published_at": "2026-03-08T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62288b8fa",
"title": "Everything Announced at Laracon EU 2026 (and What It Means for Non-Developers)",
"url": "https://notesonlaravel.com/laracon-eu-2026/",
"published_at": "2026-03-07T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62348245d",
"title": "Migrating from PrismPHP to the Laravel AI SDK",
"url": "https://notesonlaravel.com/laravel-ai-sdk-migration/",
"published_at": "2026-03-06T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62364feb7",
"title": "Choosing MySQL vs PostgreSQL for Your Laravel Application",
"url": "https://notesonlaravel.com/laravel-mysql-vs-postgresql/",
"published_at": "2026-03-06T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f6238e8c45",
"title": "I Asked AI to Audit My Laravel App's Security. It Found 4 Things I'd Never Have Caught.",
"url": "https://notesonlaravel.com/laravel-security-audit/",
"published_at": "2026-03-06T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f6246a8860",
"title": "My Signup Flow Silently Failed and Nobody Told Me",
"url": "https://notesonlaravel.com/laravel-signup-silent-failure/",
"published_at": "2026-03-06T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f6248f373a",
"title": "Everything That Went Wrong When I Tried to Delete a Team",
"url": "https://notesonlaravel.com/laravel-team-deletion/",
"published_at": "2026-03-06T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f6256cd287",
"title": "Why My Livewire AI Chat Flashed Raw Markdown Before Rendering",
"url": "https://notesonlaravel.com/livewire-streaming-markdown/",
"published_at": "2026-03-06T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62616188d",
"title": "I Can't Write a Single Line of PHP. Here's What I Can Do.",
"url": "https://notesonlaravel.com/laravel-cant-write-php/",
"published_at": "2026-03-05T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f626d5ba4a",
"title": "I Asked AI to Audit My Page Speed. It Found 9 Issues.",
"url": "https://notesonlaravel.com/laravel-performance/",
"published_at": "2026-02-28T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f6272b2721",
"title": "I Switched WYSIWYG Editors and All My Images Disappeared",
"url": "https://notesonlaravel.com/laravel-wysiwyg-migration/",
"published_at": "2026-02-28T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f627fb419d",
"title": "Your Laravel App Is Shipping JavaScript Nobody Uses",
"url": "https://notesonlaravel.com/laravel-dead-javascript/",
"published_at": "2026-02-25T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f627fba1b4",
"title": "What the Heck Is Blaze and Why Do I Need It?",
"url": "https://notesonlaravel.com/laravel-blaze/",
"published_at": "2026-02-24T12:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f628b6dcef",
"title": "Why Laravel Is Perfect for Non-Traditional Software Developers",
"url": "https://notesonlaravel.com/laravel-non-traditional-developers/",
"published_at": "2026-02-22T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f6293966e5",
"title": "What Building a Laravel App With AI Actually Taught Me About AI",
"url": "https://notesonlaravel.com/laravel-ai-lessons/",
"published_at": "2026-02-13T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f629fea3fd",
"title": "Why Flux UI Ignored My Date Format (And How I Fixed It)",
"url": "https://notesonlaravel.com/laravel-flux-chart-dates/",
"published_at": "2026-02-11T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62aabc265",
"title": "Why My Flux UI Checkbox Didn't Work (And When to Use Native HTML Instead)",
"url": "https://notesonlaravel.com/laravel-flux-checkbox/",
"published_at": "2026-02-11T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62b2727cf",
"title": "Git for Non-Developers: You Don't Need to Learn the Commands",
"url": "https://notesonlaravel.com/laravel-git/",
"published_at": "2026-02-11T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62b5acfb7",
"title": "Fixing Common Local Dev Errors When You First Pull a Laravel Project",
"url": "https://notesonlaravel.com/laravel-local-dev-errors/",
"published_at": "2026-02-11T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62bfa0a8a",
"title": "How Laravel Migrations Work (And Why You Don't Touch the Database Directly)",
"url": "https://notesonlaravel.com/laravel-migrations/",
"published_at": "2026-02-11T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62c616f3c",
"title": "Three Bugs Hiding Behind One Production Error",
"url": "https://notesonlaravel.com/laravel-production-debugging/",
"published_at": "2026-02-11T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62d3efef2",
"title": "Why updateOrCreate With a Null ID Always Creates Duplicates",
"url": "https://notesonlaravel.com/laravel-updateorcreate/",
"published_at": "2026-02-11T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62d87853d",
"title": "Small UX Fixes That Make Your Laravel App Feel More Polished",
"url": "https://notesonlaravel.com/laravel-ux-polish/",
"published_at": "2026-02-11T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62e57d1ea",
"title": "Preventing Visual Shift in Your Laravel App",
"url": "https://notesonlaravel.com/laravel-visual-shift/",
"published_at": "2026-02-11T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62ee38f37",
"title": "How to Handle a Spam Vulnerability Report (And What to Actually Fix)",
"url": "https://notesonlaravel.com/laravel-vulnerability-reports/",
"published_at": "2026-02-11T00:00:00+00:00"
},
{
"id": "01a087b2-b852-7113-91f6-f7f62f6534bb",
"title": "Livewire Components vs Blade: A Non-Developer's Guide to Making the Right Choice in Laravel",
"url": "https://notesonlaravel.com/livewire-vs-blade/",
"published_at": "2026-02-10T22:00:00+00:00"
}
] posts Claim your blog