MVP Image Uploading

Image uploading into questions and answers is definitely MVP. Some of the features will likely not be :frowning:

  • Process: Image uploading should include local file upload, image URL paste and (if possible/practical) paste image data from local clipboard
  • Image Storage: We should use our own storage in order to have complete control - i.e., avoid a 3rd party service going out of business or being blocked for legal issues (e.g., if the same service hosted images deemed illegal). AWS S3 is an option, currently at $0.023/GB/month.
  • Metadata Storage: The database will need to store information such as the original source (user), filename, etc. All references to the actual image should be via the database, so that if we change storage platforms (or rearrange files within a platform), only the routine that fetches the image based on the metadata will change, but no actual links within Q & A, etc.
  • User Manipulation: We should not provide a full image editor. But 3 simple functions:
    • Crop
    • Rotate
    • Resize
      can take care of the vast majority of problems with uploaded images. Many users, particularly uploading directly from smartphones, are unable to crop/rotate/resize locally before upload. I have at times downloaded images and fixed them and uploaded the fixed images simply because I couldn’t stand looking at an upside down image with extraneous junk, etc. Make it easy and users can do it themselves (original user or another user editing). These functions will require a good UI, but the end result because a handful of numbers (4 numbers for crop (left/right/top/bottom), 1 for rotate (angle), 1 for resize (percentage) so they can be stored in the database with the other metadata. The adjusted images can be stored separately (more storage cost) or generated on-the-fly (more processing each time) or a mixture (store recent images and purge all but ‘original’ after a certain time).

Is the own storage just for backup or is it also gonna be used for hosting the images?

Ability to include images in posts: yes, images in posts are very useful. That’s not strictly needed for MVP, links to images will do in a pinch. But it’s definitely better if we can show them inline.

Having our own storage for images: that’s preferable, but not easy or cheap. Not MVP. We can leverage the Wayback Machine to ensure images don’t get lost: ensure that it’s crawling our site and includes linked images.

Built-in editor: nice, but that’s absolutely not MVP. MVP means minimum viable product, not everything we’d like to have.


Hosting. I am 100% against using a 3rd-party service like imgur. The cost of hosting ourselves is minimal and it solves a lot of potential problems. The issues (copyright violations, inappropriate images, etc.) that we will inevitably have to deal with will happen (and will affect us) whether we host the images or just point to them.


I tend to lean towards self-hosting images, but it absolutely needs some solid investigation into costs and likely available funding.

I also tend to agree with @gilles - an on-site image editor would be good, but is not MVP. If SE gets by without one in production, so can we until we have built a solid product and can come back for a second pass.


Can’t rely on Wayback Machine to ensure images don’t get lost - even less than a paid 3rd party service. Hosting our own is not expensive, and I argue should be MVP.

One way to keep the cost down initially, and would be simpler as well, is to not store any images that are retrieved as part of transferred Q&A from SE (or other sites) and link those images to the original location (imgur or direct hosting of any other site). That is quite logical and eliminates the initial burden of transferring (potentially) millions of images. It also may avoid some licensing issues.

I do agree that built-in editor is not MVP. But I believe that the 3 key functions (crop, rotate, resize) can be done fairly easily and would be an example of an advantage over some competing systems.


This is indeed very likely to be true, especially if we use an existing solution (at least a starting point) as we should anyway IMO, instead of reinventing wheels, tires and entire carriages.

But yes, matter of fact is, this is not an MVP feature.


I’ve changed my mind on image hosting. We should only accept embedded content that we or some independent service hosts. Ideally we should host the images, if not they should be on some reasonable service such as Imgur.

The reason is privacy. Stack Exchange allows posts with embedded images on a server that the author controls. This allows the author to at least collect IP addresses of visitors, and possibly do some browser fingerprinting. It’s a privacy violation. Let’s not do that.


On the other hand, the ability to hotlink an image is useful - maybe Wikimedia Commons has the exact image that I want, and I don’t want to have to bother re-uploading it.

So maybe the solution is in the middle - we (a) have a list of whitelisted domains that can be hotlinked from, including things like Imgur and Wikimedia, and we (b) make it easy to re-upload images that are not on those domains - provide a box to paste a URL into and have the image it refers to re-uploaded.

On the third hand, that raises issues of licensing and copyright that could potentially land us in some hot water, so maybe we can’t offer re-uploading.


On the fourth hand, maybe we adopt a Medium-like approach to hotlinking: allowed, but any third-party hosted embedded content will be replaced by an overlay and not loaded until the user specifically clicks it to load it in. Embedded content that we host doesn’t need to have an overlay.


We absolutely have to allow re-uploading. A very significant percentage of users (except the true geeks) have any clue how to properly upload a picture from their phone to their computer or from their phone straight into a browser. Many (not all, but a significant percentage) upload to some “system” that is easy from their phone - that might be imgur or facebook or something else. Once it is there, they upload to SE by copying/pasting a link to the image from a web site. There is no practical way to distinguish between those links (their own personal content that has zero license issues) and content from other sites. For that matter, we have no easy way to distinguish between a person’s own Facebook post and a grab off of someone else’s page. (No, I have no idea what the Facebook licensing is - even if that turns out to be OK, there will be other sites where it is a problem).

So we allow “any images”. We make it easy. We give a BOLD WARNING about copyright and other legal issues (you can guess what those are with images). And then we have to be reasonably vigilant when issues or questions come up.


Would pasting an image in from clipboard ever be a possibility? I know that’s one of my favourite Discord features, and it would circumvent the issue of pasting in links to at least some users. Probably not MVP, but I don’t want to have to create another thread to just post a single line.


Yes. I mentioned that at the beginning:

There really are a variety of users with different capabilities, devices preferences. Ideal will be link, upload or paste.

1 Like