Coffer
August 11, 2026

How Are You Using AI?

A small robot wizard casts a code spell at a mimic treasure chest, surrounded by scrolls of diagrams, in a torch-lit stone room.

It’s become the “What does ‘state’ mean to you?” of interviews.

The reason is clear: We are all using AI, we all need to understand AI and how to use or maintain it, and we are all just making it up every time someone asks us.

The change in how software developers are engaging with AI is best represented by the change from Laracon 2025 to Laracon 2026. Doom and gloom was the best description of many of the talks in 2025, as speakers tried to talk developers off the roofs of their buildings and back to their keyboards. This year, however, the tone was absolutely optimistic, assuming that AI would empower developers to ship more, faster, and with less overhead.

That change makes sense when you look at the larger community. AI development is no longer an opt-in tool; it’s now a primary skill.

“Okay, so I should use AI. Thanks, Alex. I will file you away with every other voice shouting into the void.”

Ah, yes. You should use AI. But how should you use AI?

It’s the obvious question that many people are asking, but clear explanations of how to systematically use AI in development are oddly lacking. Much like the fitness craze, everyone is hype, but no one is strategy.

So, let me offer a strategy.

I have developed an approach to using AI, particularly tailored to Laravel, that has reduced my token usage, improved output, and shortened development time. I would like to introduce you to the “Models, Migrations, Mimicry” method.

Look at that alliteration. I did go to seminary, after all.

Models

Models are the foundation of the Laravel system and often a cornerstone of object-oriented applications. They define the structure of the application, establish its attributes or properties, and, in Laravel, define the Eloquent relationships between different models.

These features—structure, attributes, and relationships—all represent high-level decisions that will dramatically affect the direction of the application.

But they aren’t just impactful. Models are better defined in code than in speech.

Telling an AI agent that “the Post model should connect to the Like model and connect to the User model so that the user can like a post but then unlike the post in the future if they decide they don’t like it” is trash.

It’s bad.

It doesn’t clearly articulate how the models need to work together, and it doesn’t really indicate how those relationships will function within the application. The agent has to infer that the relationship between Post and Like is one-to-one, but it might actually be polymorphic in your application if you intend for users to be able to like videos, images, or people in the future.

When that information is conveyed in code, however, it is clear to the agent. Eliminating the guesswork surrounding the relationships between these models allows the agent to clearly follow your lead.

Migrations

Migrations are very Laravel-centric, but the concept can be found in other languages and database systems as well.

In Laravel, migrations are the programmatic way of setting up your database and establishing any additions, changes, or removals. Whether it is Alembic with SQLAlchemy, Goose in Go, or index mappings in Elasticsearch, the important questions are: Where am I setting up my database, and what fields am I using?

This stage is important for two reasons.

First, it helps define more of the structure of your models, particularly the dynamic elements that need to be saved long-term.

Second, it gives you the ability to make smart optimization decisions. AI will use longText when it does not need it. It will rarely reach for char, unsignedTinyInteger, or nullableUuidMorphs. Some of these column-type decisions can have a dramatic impact on the overall performance of your application.

Switching to a new column type once your application is already in development—or, worse, in production—could result in lost data, downstream bugs, or even catastrophic application failure.

Save yourself hours of computation and headaches by clearly articulating the database structure in code.

Mimicry

Mimicry is the final and most pivotal aspect of this approach.

Mimicry means providing clear, stylized examples of how you want the final application to look. You do not need a wireframe for every page, but a few wireframes are ideal for helping the agent understand which Tailwind classes and visual patterns you intend to use.

Even without wireframes, a detailed brand guide, a couple of screenshots, or even a good hand-drawn picture will help your model understand what the final product should look like.

Then, as all wizards long for, it’s magic time.

In Laravel, make sure you run Boost, initialize Claude, and start slinging code. Instruct your agent to read your models and migrations to get a feel for the structure of the project. Tell it to review the folder where you have saved your wireframes so it can understand your style and UI/UX direction.

Then, tell it to build.

Cast your spells. Watch the magic unfold.

You will find that the resulting code is cleaner, more focused, and produced faster.

I’m Convinced. Alex is a Genius, and Handsome.

We need methods for approaching AI development.

AI tools are wonderful for all the reasons you have already heard a thousand times. Using AI efficiently and methodically will help increase those moments when you love Claude and reduce those moments when you hate Grok.

This method is my starting point. I hope it can also serve as a foundational idea as you develop your own method for working with AI.

Back to blog