One of the cool things you can do with Statamic is track everything in Git. Yup, we're talking content too as long as you're using flat-files and not the Eloquent (database) driver. Like anything cool in life, this comes with responsibilities, but one of the possibilities it unlocks is you can pull in all of a project for an agent to inspect locally.

Even though Claude Code is getting most of the buzz these days, I've been testing OpenAI's Codex Mac app since some usage is included with a paid ChatGPT plan (which I have through work). In this article, I'll show some of the ways I've used it, mostly in one of my side projects.

In a lot of ways, Codex acts more omnipotently than we would want any actor to in a production system, but that can be ok locally. I had a Wordpress site, I wouldn't want codex running wild on my production database, right? But with Statamic, we can kind of do this locally and use git to control the blast radius and whether changes make it back to production or get reverted immediately.

From backend to templating to social media strategy and recycling

One of the first things I had Codex help me with on my side project was implementing IndexNow support. It's not something that's particularly hard to do (I maintain code for this at my day job too). I was pretty specific about listening for the EntrySaved event from Statamic and using a Redis-based structure along with the Laravel scheduler to send URLs in batches. To my surprise, I was able to more or less one-shot this!

Later on, I had Codex look through all my content and tell me if it saw any opportunities to add more types of content "blocks" to my site. I then had it implement a selection of these suggestions. For example, one of its suggestions was to implement a description list set for specs of various pieces of music gear I've written about on the site. This was actually useful since I didn't necessarily know what direction the content on my site would go when I launched it, and simply another set of "eyes" on my ideas helped me iterate better on my site's content model.

Social media case study: compressing multiple articles into an Instagram Carousel

I've written a few articles about Webassembly's implications for music content, but I never really made that content available to my instagram following. I decided . I never want to be the kind of guy to slop up the internet and other peoples' feeds, but this is an example of where I've put my words out there already, but combining those two articles into a narrative arc that I could use on Instagram isn't the most cognitively cheap task out there. So, I decided to use Codex to help me out. From a simple (voice) prompt, it was able to pick out the correct articles to review as a starting point to plan/write content for instagram.

Screenshot of the Codex UI showing that codex identified two articles related to the idea of new forms of

After some back and forth, this is what I ended up creating:

 
 
 
View this post on Instagram
 
 
 
 
 
 

A post shared by Alex (@tubesandcode)

Building a small skill: retrieving my latest Bluesky Posts via RSS

Part of what I was going to mention in this post was that I haven't really gotten into 'skills' too much yet, but I did eventually end up adding a quick one that pulls posts from my project's Bluesky account using curl. One of the cool things about Bluesky is how it exposes your recent posts through an RSS feed. I used the builtin Skill Creator skill to create a new skill, but Codex seemed to have trouble understanding that I wanted the skill to be specific to the project. It also included some python script that pulled in the first 3 or 5 results to test the skill against. However, when I tried to use this skill, the agents ended up getting confused and using the python script. I found this confusing in turn and put a swift end to that:

I tell Codex to use 'curl' and not 'python' to fetch an RSS feed of social media posts.

The end result is an markdown file that tells the Codex agent to use curl to retrieve the rss feed when required. I'm sure I'll come up with more ways to use this in the future.

Software engineering fundamentals/skills still matter

Sometimes, it's still super important to write tests yourself! You can't always trust Codex to not write "placebo" tests that don't test what they're supposed to. This kind of stuff makes me kind of want to get more into TDD...

Also, understanding build systems is highly relevant. At one point I caught codex trying to patch stuff in the compiled output of an external open-source React/Wasm project I wanted to embed. No human you'd hire would ever do something this dumb!

In general, my finding is that things go better the more you know about the actual architecture of what you want to build. Real systems with real integrations have constraints to navigate. You have to make product/systems design choices that the model can't.

Finally, we must not forget about git. Git is like climbing with fall protection. As I said before, we need to be able to manage how AI changes our systems.

Conclusions and ongoing learning

To me, Codex seems to have some value from both for code and content. With a Statamic site, Codex can be exposed to both of those without any extra setup. Context and execution are 2 of the biggest issues with using LLMs in general IMO, so Codex is solving issues that are worth solving.

Using Codex this way also prevents me from needing to couple my website to some sort of custom AI integration and context system at runtime. This means my Statamic project can simply stay good at serving my Statamic website.

This has allowed me some development time savings as well as assisting with social media tasks. I think the greatest efficiency gains are to be found in smaller companies. In bigger organizations, it might be more problematic to have Codex bypass various data controls, roles, etc.

I'm nowhere near retiring PhpStorm either, though. To me, the idea of giving up entirely on reading and testing code seems terrible. I've worked on features for this site "by hand," for example.

I haven't tried Laravel Boost yet with Statamic either, but I had encouraging results using it with the Laravel Livewire starter kit to build a US state legislation tracking feed app for myself (which I am putting on the back burner for now since this site would probably start to build up a big DB/storage bill over time lol). If you've used Laravel Boost with Statamic, I'd love to hear about your experience or result in the comments or on Bluesky. That's one of the next things I'm going to be playing around with in this space. Memory and MCP systems are starting to seem relevant too. Thanks for reading!