The current implementation with ActiveStorage and the libvips library is rather basic. An image will be uploaded, down-sized to max 4000x3000 pixels and stored as webp file. There is a lot of room for improvement, not all of that has to be done at once, every single improvement would be a step forward:
detect landscape, portrait and square images and handle them correctly
read metadata (e.g. EXIF information) and suggest the to user to use the date the photo was taken and its GPS coordinates
clear the metadata to have "anonymous" images
detect file size (in bytes) before upload correctly
The current implementation with ActiveStorage and the libvips library is rather basic. An image will be uploaded, down-sized to max 4000x3000 pixels and stored as webp file. There is a lot of room for improvement, not all of that has to be done at once, every single improvement would be a step forward: