Goal
Support images, avatars, and previews safely.
This phase teaches why files are different from rows and why the app should store metadata in PostgreSQL while using object storage for media.
Build
- Image posts with upload validation.
- User avatars and community icons.
- Link preview metadata stored separately from posts.
- Reserved media dimensions so feeds do not jump while loading.
Concepts
- Object storage.
- File metadata and MIME types.
- CDN basics.
- Background image processing as a future need.
Prompt stub
Expansion prompt
Add image posts and avatars.
Store files in object storage and metadata in PostgreSQL.
Validate file size and MIME type.
Keep the first version simple and do not add background image processing yet.Done means
- Image posts display correctly in feeds and detail pages.
- Avatars and community icons have fallback states.
- Large files and invalid types are rejected.
- The learner understands why media can make a simple app run hot.