This year’s Laracon US ended with us having hundreds of photos and no good way to share them with the community.
A Google Drive link felt underwhelming. Pulling an engineer away from their product work felt worse.
So Abby and I, Laravel’s field marketers, built laracon.us/photos ourselves.

To be fair, Claude wrote the code, Laravel gave the application its structure, and Laravel Cloud gave us the hosting.
But actually getting it into production still required us to define what we wanted, understand what was breaking, decide what to do next, and verify that the fixes worked.
A photo app for the community
Before we started building, we defined what we actually wanted.
We may iterate later, but our main objective was simple: get Laracon photos into the hands of the community. Let people view, download, and share whatever photos they want.
I’ve heard repeatedly that if you don’t constrain the agents, they go off the rails pretty quickly, so I felt like it was important to have a clear, scoped vision up front.
How we built it without knowing how to code
Abby told Claude to build the app using the Laravel framework. This made our lives much easier. Obviously, we work with Laravel, but what we really wanted was decisions that were already made for us. Laravel brings those opinions to the table for free.
She started with this prompt:
I need to make an app, built on Laravel. I want a place where I can dump all of the photos from an event and share it publicly, and people can go in and download each photo one by one super easily. What would we do to make this work? How hard is it? Ask me questions, just a planning stage. Call it 'laracon-photos.'
I thought this was pretty smart. We had already defined our scope, but making sure Claude understood it felt important.
It asked us questions about the scale, flow, and user experience. After a fair amount of flambéing, topsy-turvying, and percolating, we had a plan we felt confident about.
With a solid plan in place, Claude built out the foundation, and Abby shared the repo with me, which is when I started pushing some changes of my own.
I used Claude Desktop and Claude Code together, like a two-screen setup. When I didn't understand something in the terminal, I'd screenshot it and ask Claude Desktop to explain. Then I'd tell Claude Desktop what I wanted to accomplish, it would write me a prompt, and I'd paste that into Claude Code.
Maybe my method wasn’t as efficient as it could’ve been, but I wanted to learn while building. There is so much I don’t know, and this was the perfect chance to learn.
One thing that became evident pretty quickly is that we didn't need to know how to code to build our app and solve problems. Sure, the scope is small, Laravel Boost had our back, but still: I feel like I have a new superpower.
This is not a one-shot prompt story, though. We did need to read error messages, learn what they meant, hypothesize a fix, and verify whether it worked. We needed to actually care.
We did all of this with Claude as our thinking partner, not just our code generator.
Works on my machine
So this was the part where it stopped feeling like magic. Everything worked perfectly on our own computers but not in prod. (Maybe we are developers!)
We deployed it, and photo uploads got stuck loading forever.
The first deployment failed because there was no database. We added one.
Uploads and background processing ran on separate machines with separate storage, but we had no shared storage. We added a Cloud storage bucket.
The queue workers weren’t configured correctly. We configured them on Cloud.
Large images exhausted memory during rotation. We fixed this by resizing first.
After clearing the failed jobs, everything worked!
I sat there for a minute just looking at it with a cheesy grin.
A real, live photo app. So this is what it feels like to build something! We didn't write the code, but we built the thing that started as merely an idea in our heads. If you’re an engineer reading this, try to remember your first Hello World. I finally had mine!
Getting over the fear of sharing our work
Putting yourself out there on the internet is scary. Sharing this app with real developers is scary!
The fear wasn’t really “will they like it?” It was that publishing our work would expose how little we understood about the code, or that we were adding more slop to the internet.
We may not have reviewed every line, but this wasn’t a disposable demo. It solved a real problem. We constrained its scope, tested its behavior, fixed its failures, and took responsibility for the result. We put our names on it. That’s where our care showed up.
Because we built on Laravel, it came with opinions baked in. Authentication, database conventions, queues, AI-coding guidelines. So even without knowing exactly what we were doing, we were kind of forced into doing it in an organized way.
Once we shared it with our team, they hyped us up and helped us take it further.
Chip Needham, a real™️ developer at Laravel, got us into Laravel’s official GitHub organization and set up the laracon.us/photos URL for us.
View, download, and share your favorite photos. 😏
If you’re sitting on an idea you think would be fun or useful, but you’re too scared about what the public might say, do it anyway. You can just do things!
We still aren’t developers. We’re not gonna pitch in on Laravel Cloud. But we found a real problem, built a real solution, learned enough to fix it when it broke, and put it in other people’s hands.
Marketers can be builders, too.