I applaud the scale and reach that Unsplash has achieved. It's a great resource. But at a certain point, cost savings do matter and it makes sense to make a change.
At this scale Heroku is always going to be more expensive than AWS or Digital Ocean. What happens when the Heroku bill hits $10K/mo?
Once they hit the next S3 bandwidth tier (350TB), Imgix becomes roughly 50% more expensive than just putting images on S3.
Everyone has their own heuristic for these decisions, but once you get in the realm of "1 or 2 people's entire salaries of savings" that's when I start really thinking hard about changing infrastructure providers.
> $18k is a lot of money to spend each month. Understanding the scale of Unsplash though can help explain the costs.
But does it justify the cost? Are you able to attribute new business from Unsplash? Does it bring in enough money to cover the $18K AND the salaries of the people who mantain it AND the opportunity cost of what they could be working on?
This is stuff we've absolutely thought hard about. Believe me when I say that I would love to cut the costs by switching providers for certain things, but the tradeoffs at our current size aren't worth it in our opinion.
I'm working on another post which outlines the tradeoffs of the different services and why we chose the ones that we use. That's probably the missing piece here — we've thrown out a lot of numbers but didn't give the reasons behind it (we wanted to keep the article focused and short).
Re justify-ing the cost, we absolutely can justify the cost. We've thought about all of the things that we spend time on and we wouldn't do something unless we thought it was the best use of our resources.
So the resizing alone makes Imgix very valuable to us. We're in an interesting situation though, where we have relatively few `master` images, but hundreds of renders per image, which are then seen millions of times each month. That's a perfect fit with Imgix's pricing model.
We tried Imgix on a few other products where we had tens of thousands of images being uploaded each month and only seen a couple hundred times per image. That became prohibitively expensive — which is probably a similar situation that you ended up in (high number of `master` images to render ratio).
In addition to realtime resizing, we use:
- face detection
- typesetting
- overlays
- cropping/point of interest cropping
- color palette
- exif/image metadata
- client hints
- automatic content negotiation
Pretty much everything except their watermarking endpoint haha ;)
Out of curiosity, why are you seeing hundreds of renders per image? I'd think it'd be significantly fewer than that, unless you've got a lot of stuff going on in the background that isn't really obvious--it sounds like you're sometimes doing some significant editing beyond what the photographer has already done.
We had a pretty high bill with Imgix just from resizing, and I agree, it makes sense to switch (we wrote https://github.com/humanmade/node-tachyon for use on AWS Lambda instead). However, some of the Imgix features are pretty killer if you want to do advanced handling there.
I think this post is turning out to be quite a nice piece of marketing for Imgix. After reading about it I signed up immediately and already entered my CC details.
For me the killer feature is being able to crop images such that a detected face within the image is centered.
I've been using Thumbor[1] on an EC2 instance and once OpenCV is installed the face & feature detection has been great. Combined with a similar style of "put the transforms in the URL" on demand method of serving images it's been awesome.
1. At any scale pretty much AWS / GCE are less expensive than Heroku. They also come at an non-zero operational cost. Say, switching to Google App Engine (the cheapest from my understanding) -- would save them 75% of their bill (just back of the napkining). -- That's not much, compared to the cost of having someone migrate the platform over (multiple work-weeks)
2. S3 != Imgix. Imgix is a CDN + Image resizing service. At a couple employers ago we tried to run our own image resizing service in house, and it was a royal pain in the ass. I can go into this if you're interested.
The other thing is S3. My current employer uses S3 pretty heavily, and S3 is really not meant for end-user data access it seems. It suffers from lots of latency spikes, and a non-zero error rate. Slow, and unreliable sites make your users go away.
Ok, well, S3 + CloudFront just about is. Yes, I understand Imgix has other features like on-demand resizing. But it looks like Unsplash is a rails app–in which case a library like Refile [0] can handle that.
At this scale Heroku is always going to be more expensive than AWS or Digital Ocean. What happens when the Heroku bill hits $10K/mo?
Once they hit the next S3 bandwidth tier (350TB), Imgix becomes roughly 50% more expensive than just putting images on S3.
Everyone has their own heuristic for these decisions, but once you get in the realm of "1 or 2 people's entire salaries of savings" that's when I start really thinking hard about changing infrastructure providers.
> $18k is a lot of money to spend each month. Understanding the scale of Unsplash though can help explain the costs.
But does it justify the cost? Are you able to attribute new business from Unsplash? Does it bring in enough money to cover the $18K AND the salaries of the people who mantain it AND the opportunity cost of what they could be working on?