Have you considered having people’s web browser do the OCR? E.g. https://github.com/naptha/tesseract.js I suggest this while having no idea how much that would help reduce bills, just an idle thought about how to maybe eliminate a dependency on an external service which I think I’ve seen you say sometimes incurs charges. Storing the original photos is nice, but do you actually need to? The megapixels of a typical phone camera and hence the MBs of a typical photo keeps increasing. How about resizing all photos bigger than X by Y pixels. Could have a cronjob do it rather than adding that complexity and potential failure point to the upload process.