The Story
A user sends you a feature request: “Can I upload photos to my trips? I want to add inspiration pictures for places I want to visit.”
Sounds reasonable. You fire up Claude Code and tell it to add photo uploads. It works. Users pick a file, it gets saved, the photo shows up on their trip. You feel good.
Then your app goes down.
You check the logs. “Disk full.” Your server has a small hard drive — most cloud servers do, because they’re designed to run code, not store files. Fifty users uploaded a few vacation photos each, and that was enough to fill it up. Your entire application crashed because someone uploaded a high-resolution sunset in Santorini.
You fix it by deleting the uploads and restarting the server. But then the next deploy happens. Your hosting platform ships a fresh copy of your code to a new server instance. That fresh copy doesn’t include the uploads folder. Every photo is gone. Again.
This is the same lesson you learned with data in the JSON file — your server’s disk is temporary. But this time it’s worse, because images are big. A JSON file with a hundred trips might be a few kilobytes. A hundred photos is hundreds of megabytes.
Your server is not a hard drive. It never was. You need somewhere else to put files.
This lesson continues with the full course
The story intro above is free to read. The full lesson — prompts, explanations, and adapt-it exercises — requires the Ship It ($69) tier or above.