The tale of a family Christmas Store Photo Showdown and the one-off web app I made to keep score.
Picture it, 4 people barreling down the highway en route to the largest Christmas Store in the country. Excitement is high, intention to buy any Christmas consumerist memorabilia is low. What then are we to do at this store? Enter the photo competition! A 2v2 match to stage a photo with pieces of decor across 21 categories.
We walk in, and start our clocks. Thus began a frantic hour of desperately searching for and constantly replacing the best photo-op. We both just barely squeaked by! But on the ride home, we spotted the flaw in our plan. How were we to conclude this fierce competition with the style and flair it so rightfully deserved?
We had a projector at our disposal, and a desire for a side by side reveal. Powerpoint would've been easy, but we didn't have a fifth wheel to organize the competition slides for us, and it was unacceptable for one person to spoil the results for themselves.
Thus, I spent the hour car ride back writing up a Claude Code spec for a web app that would allow each team to upload their photos, with a laptop ready and waiting to display the side by side results in dramatic and festive fashion.
It ended up taking about 3 hours to get to the level of spit and polish I wanted for our dramatic conclusion, but it was worth it!
I've found with AI written apps, in order to minimize rough edges and time spent, you need to spec out the whole thing as explicitly as possible up front. Engineer as much of it yourself ahead of time as you can think of and pick out the tech stack. Anticipate problems and explain solutions. Writing detailed specs seems to be the most important skill to develop in this day of agentic coding.
LLMs always want to try to make code "production ready" but the goal here wasn't shipping a product. I was making toy software for a one off family competition. It was meant to be fun and satisfying for a silly holiday afternoon. Make it all one big file so it's always all in context. Use the file system, no database, skip security checks and validation (your users are sitting next to you). And just accept that you'll never escape tweaking CSS for an hour because your image just won't fit right.
Though as it turns out, don't skip validating that jpeg images aren't secretly HEICs in disguise or else you'll find yourself rapid debugging with an audience when you were supposed to be laughing at ugly ornaments.