The Problem: Hundreds of Photos, No Good Way to Share Them
After Laracon US 2026 wrapped, the Laravel marketing team faced a familiar post-event headache: hundreds of community photos and no elegant way to distribute them. A Google Drive link felt underwhelming. Pulling an engineer off product work felt worse.
So Abby and Sam — Laravel's two field marketers — decided to build laracon.us/photos themselves, with Claude as their coding partner, Laravel as the framework, and Laravel Cloud as the host.
Defining Scope Before Writing (or Generating) a Single Line
Before touching any tooling, the team defined a clear, constrained objective: let community members view, download, and share Laracon photos as easily as possible. Nothing more.
Abby's opening prompt to Claude reflected that discipline:
"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.'"
Claude asked clarifying questions about scale, flow, and UX before generating anything. That planning phase turned out to be one of the most valuable parts of the process.
Why Laravel Made the Difference
Choosing Laravel wasn't just brand loyalty. For non-developers, Laravel's opinionated defaults meant fewer decisions to make from scratch:
- Authentication — handled out of the box
- Database conventions — consistent and predictable
- Queue system — ready to configure, not build
- AI-coding guidelines via Laravel Boost — gave Claude a structured target to code against
Even without understanding every line generated, working within Laravel's conventions meant the output was organized and coherent.
The Two-Screen Workflow
Sam developed a practical dual-tool setup:
- Claude Code in the terminal for generating and applying changes to the codebase
- Claude Desktop on a second screen for explaining error messages, drafting prompts, and thinking through next steps
When something broke in the terminal, Sam would screenshot it, ask Claude Desktop to explain the error, then have Claude Desktop write a prompt to feed back into Claude Code. Not the most efficient workflow, but deliberately chosen to maximize learning alongside building.
Debugging in Production: The Real Work
Everything ran perfectly locally. Production was another story — a rite of passage that felt surprisingly familiar.
Here is the exact sequence of failures and fixes:
- No database on first deploy → added one via Laravel Cloud
- No shared storage between upload and processing machines → added a Cloud storage bucket
- Queue workers misconfigured → configured correctly in Laravel Cloud's dashboard
- Memory exhaustion on large image rotation → fixed by resizing images before rotation
- Cleared failed jobs → everything worked
None of these fixes required writing code from scratch. They required reading error messages, understanding what they meant, and knowing what to ask Claude next.
Key Takeaways
- Scope constraints matter as much with AI agents as with human developers — vague prompts produce vague results
- Laravel's opinions are a feature for non-developers, not just experienced engineers; they reduce decision fatigue significantly
- AI pair programming is iterative, not one-shot; debugging, verifying, and caring about the outcome are still human responsibilities
- Laravel Cloud handles the infrastructure complexity that would otherwise block non-technical builders (queues, storage buckets, environment config)
- Putting your name on the work — even AI-assisted work — is what separates a real project from a throwaway demo
The Result
The app is live at laracon.us/photos. Chip Needham, a developer at Laravel, helped get the project into Laravel's official GitHub organization and set up the custom URL. The community can now view, download, and share photos from Laracon US 2026 freely.
Marketers built it. Laravel structured it. Claude coded it. Laravel Cloud ran it.
Source: We built laracon.us/photos. We're not developers. — Laravel Blog, August 17, 2026