If you've used Claude Code, Cursor, or any AI coding assistant recently, you've probably noticed they're getting better at doing things , not just generating text. The bridge that makes this possible is MCP: the Model Context Protocol. I've built two MCP servers that I use daily. One manages the blog you're reading right now. The other is a personal knowledge base called Acervo. Both are Laravel…
Claude Code is already fast. Point it at a Laravel project and it can read files, run tests, execute commands. But it's working blind. It doesn't know your routes, your database schema, or what's in your logs until it goes digging through files. That's where Laravel Boost comes in. Boost exposes your Laravel application's internals as MCP tools. Routes, models, schema, logs, tinker, all available…
Every Laravel app has opinions. Naming conventions, custom casts, query scopes, validation patterns, how you structure form requests. All of it adds up to a codebase that works a certain way. Ask an AI to generate code for your app without that context and you get textbook Laravel that compiles but doesn't belong. The generated controller uses $request->all() instead of your form request classes.…
Laravel 13 dropped on March 17, 2026. If you read my What's New in Laravel 13 post, you already know the full changelog. This post isn't about that. This post is about the signal Laravel 13 sends: Laravel is now an AI-first framework, and it's not even subtle about it.
Laravel 13 dropped with zero breaking changes and a heavy focus on AI tooling. The upgrade from 12 is smooth, but the new features are worth paying attention to, especially if you're building anything that touches AI, APIs, or search.
Handling null values in PHP can be a pain. We've all seen (or written) code that’s riddled with if checks just to deal with null . But what if I told you there’s a cleaner way? Enter the Null Object Pattern , a simple yet effective solution for avoiding unnecessary checks while keeping your code easy to read and maintain. Let me show you how it works.
Let’s rewind to 2020. PHP 8.0 lands, and developers get their hands on something they’d been craving for years: attributes. Think of them as PHP’s version of annotations—a way to embed metadata directly into your code. No more juggling bulky docblocks or fragile YAML files. Now you can keep things simple and readable.
Asynchronous programming in JavaScript can be challenging, but async/await makes it more manageable and readable. Introduced in ECMAScript 2017, async/await allows you to write asynchronous code that looks like synchronous code, simplifying the process of handling asynchronous operations.
In the complex world of developers, every keystroke, interface, and font selection is carefully examined and intriguing. Taking inspiration from many before me, let's delve into the wide range of tools that drive my daily work efficiency. It's also a great opportunity for some affiliate links, don't you think?
Traits are a powerful feature in PHP, introduced in PHP 5.4, that allows developers to reuse code across different classes independently of class hierarchies. They serve as a mechanism for horizontal code reuse, helping to avoid issues related to multiple inheritance and allowing for a more modular and maintainable codebase. This blog article will explore the ideal scenarios for using traits,…
JavaScript promises seem straightforward until they become your worst nightmare. Understanding JavaScript promises clearly is crucial for writing better code. In this guide, you'll learn how to use them effectively, master advanced methods, and significantly improve your code.
Have you ever accidentally committed sensitive information like passwords, configs, or large files to your Git repository? If the answer is yes, then you need to learn how to handle the .gitignore file. In this article, I'll walk you through how to create a .gitignore file in a Git repository and optimize it for different tech stacks.