Back to all posts

What is the (technical) cost of running a photo site/service?

Take a quick guess: What do you think it costs to host one of the largest photography sites in the world for a month?

$1,000?

$10,000?

$50,000?

Before starting Unsplash, I would have had no idea.

No one talks about this stuff and I’m not really sure why.

Let’s change that.

Servers

Unsplash runs on Heroku—a hosting service that abstracts the complexities of managing scalable servers and encourages rapid development. Which basically means that it keeps us running without us having to manage our own servers, and is always prepared for when the site gets large spikes in traffic. 

While Heroku charges a small premium over other hosting services, our small team size and high traffic makes the tradeoff really beneficial since we save big on DevOps costs (a topic we’ll save for another post).

In February we spent $2,731.23 USD on Heroku and Heroku add-ons (essentially 3rd party services linked through Heroku, like databases, error reporting, and server analytics).

Heroku bill of $2,731.23 USD
Heroku Invoice for February 2016

With the way Unsplash is built, the majority of the costs come from the main application production-unsplash which powers unsplash.com and the API.

About two thirds of the costs for production-unsplash come from the server dynos — essentially the computers that run the application logic for the site. In February they served over 30M pages, 140M API requests, and ran 2.2M background jobs.

Of the $2,731.23 paid to Heroku, over $1,200 is spent directly on these server dynos for the main application.

The rest of the ~$1,500 is split between smaller supporting websites like Unsplash Source and Made with Unsplash, review apps, and databases like Postgres, Redis, and Memcached.

Supporting services

The two costly supporting services Unsplash uses are logging and data. Both were something I personally had never thought about until starting Unsplash, but as it turns out, they can cost a lot.

In February we spent $1000 USD on Keen, which is our main data service that we use to store and query event data. We’ve had mixed results with Keen, but it’s safe to say that we’d be spending a lot more money (probably 4-5x as much) if we were to run a more elaborate setup like a lot of companies do.

Keen bill of $1000 USD
Keen invoice for February 2016

For logging we use Logentries and paid $630 USD in February to analyze and store the logs from production-unsplash. For the amount of log data that we stored, that’s actually quite cheap, but it’s still surprising (at least to me) what it costs to store a couple hundred gigabytes of log files.

Logentries invoice for $630 USD
Logentries invoice for February 2016

Image hosting

Now for the big one.

Without a doubt, the most expensive part of hosting Unsplash comes from serving and storing the incredible collection of photos.

Each month over a billion images are viewed and 5.5M photos downloaded.

Most of these images are handled by the image service Imgix, which is a service that essentially abstracts image hosting and delivery into a very simple, worry-free API. (If you’re unfamiliar with Imgix, definitely check them out — we <3 imgix="" a="">.)

In February alone, that cost $11,170 USD.

Imgix bill of $11,170 USD
Imgix invoice for February 2016

On top of that, we paid a bill of $1,713.58 USD for our legacy Cloudfront CDN (from the old Tumblr days) and $413.81 USD for storage of images on S3.

AWS bill of $2,127.39 USD
AWS invoice for February 2016

Adding it all up we get:

  • Servers: $2,731.23
  • Logging: $630.00
  • Data: $1,000.00
  • Image hosting: $11,170.00
  • Image storage: $2,127.39

Total (USD): $17,658.62

When I’ve shared this number in the past, most people’s reactions fall into one of three responses:

  1. “Wow, thats a lot of money for a website!”
  2. “I could save you X thousands of dollars by using {insert technology}”
  3. “That’s not that much—we spend X!”

I bet you’re probably thinking one of these yourself right now.

For those of you having reaction #1, it’s true, $18k is a lot of money to spend each month. Understanding the scale of Unsplash though can help explain the costs.

For every second of every day, Unsplash serves 360 high-res images and 120 API and web requests. More photos are viewed every week than over the entire first year of Unsplash.

For what Unsplash does, $18k is actually a reasonable amount of money.

If you had reaction #2, before you tell us how inept we are, let me try to appeal to your logical side. I admit there are definitely technologies and services that could cost less on a monthly invoice than our current choices. However, trust me when I say that our team has spent a lot of time considering the pros and cons of each service.

For example, could we switch to AWS for hosting and save 50+% on our server bills? Absolutely.

But doing so would require a number of tradeoffs that we simply shouldn’t be making at this stage in our company’s life. I have another post coming out soon which talks about how we choose our priorities and why we don’t just focus on reducing costs and small optimizations, but the gist of it is that we’ve thought a lot about these things and we’re confident in the choices we’ve made based on our current priorities.

If you had reaction #3, great, then let’s talk!

If you’re in a position to share, then I challenge you to share: What are your hosting costs?

As a company, we try as hard as possible to be transparent in everything we do, whether it’s the good, the bad, or the ugly. But as a community it seems to be taboo to talk about costs, while bragging about profits and revenues is the norm.

Hopefully getting a behind-the-scenes look at what it costs to run a site like Unsplash will help you with your own business, or at least give you a better understanding of what’s involved.

 

This article was originally posted at:
https://crew.co/blog/what-does-unsplash-cost/

Can we take you from stuck to unstuck?

We'd love to hear from you

Product Design

The ‘Product’ is the website, service, application, interactive thing being worked on by the business. The practice of Product Design is similar in a lot of ways to UX Design. It involves the coming together of many specific design disciplines...

Call to action (CTA)

A call to action is a marketing term that refers to a prompt that invokes a response leading to a sale. When referring to a call to action (CTA) in the digital design world we usually mean the interactive element that leads to the next step in the experience - something that needs to be clicked or tapped.

User testing

User testing refers to a technique used in the design process to evaluate a product, feature or prototype with real users. There are several reasons why you might want to undergo usability testing, the most common is that it allows the design team to identify friction in a user experience they are designing, so that it can be addressed before being built or deployed.

WYSIWYG

WYSIWYG (pronounced WIZ-ee-wig) is an acronym for "What You See Is What You Get". It helps identify an an interface that allows user input resulting in an output that is rendered in a similar way. For example; a word processor application interface might resemble a piece of paper,so when printed the user can see how the output will appear.

Content Management System

A content management system (CMS) is an tool that allows a website editor/administrator to manage the content that is displayed. Websites are made of HTML and CSS to create pages. Pages can be hard-coded but would require technical development skills to make changes. A CMS usually allows a person without coding knowledge to amend existing and add new content to a website using a WYSIWYG interface.

Responsive Web Design

Responsive web design refers to a web page that dynamically adapts its layout to fit the size and orientation of the device on which it is viewed. A responsive design allows for a more optimised user experience across desktop and laptop computers as well as smartphones and tablets of varying sizes.

User Stories

User stories allow the functionality of a product or service to be expressed as written descriptions of an experience as seen from the users perspective. The writing of user stories creates a list of design and development tasks to complete in order to create any required functionality.

User Interface

A user interface (UI) is a conduit between human and computer interaction - the space where a user will interact with a computer or machine to complete tasks. The purpose of a UI is to enable a user to effectively control a computer or machine they are interacting with, and for feedback to be received in order to communicate effective completion of tasks.

Personas

A persona in UX Design is the characterisation of a user who represents a segment of your target audience. On a project you might create any number of personas to be representative of a range of user needs and desires. The solutions you design must answer these needs in order to deliver value to your target audience.

Card sorting

A great, reliable, inexpensive method for discovering patterns in how users would expect to find content or functionality. Card sorting is used to test the taxonomy of data with a group of subjects, usually to help inform the creation of the information architecture, user flow, or menu structure on a project.

Brainstorming

A technique used to generate ideas around a specific topic. Often done in groups, but can be done individuals. The process usually involves writing down all ideas around a topic onto paper, a whiteboard or stickies often implying some kind of association.

Minimum Viable Product

An MVP is a product that has the minimum set of features to prove the most essential hypothesis for a product. Businesses building a new product can create a Minimum Viable Product to prove that an idea is viable and warrants further investment. A further benefit being that the next stage of development can be informed by feedback obtained from testing that MVP.

Sitemap

A sitemap is a diagrammatic representation of a hierarchical system. It usually depicts the parent-sibling relationship between pages in a website, showing how sub pages might be arranged underneath their parent groupings. This arrangement forms a map of the site.

User journey

A user journey represents a sequence of events or experiences a user might encounter while using a product or service. A user journey can be mapped or designed to show the steps and choices presented as interactions, and the resulting actions.

Prototype

A prototype is draft representation built to test ideas for layout, behaviour and flow in a system. Prototypes are an indispensable tool for resolving a large number of potential issues in a concept or business before too many resources are deployed to put a design into production.

Wireframes

A Wireframe is a visual schematic that conveys a basic level of communication, structure and behaviour during the design of a system. Wireframes are low-fidelity designs that bypass including a detailed user interface or visual design, conveying just enough to get across the core idea.

Usability

To say something is usable is a qualitative statement about how easy that thing is to use. Usability is an assessment of how learnable a system is and how easy a user finds it to use. The usability of a system or product is a key factor in determining whether the user experience is a good one.

Information Architecture

Information architecture is the design and organisation of content, pages and data into a structure that aids users understanding of a system. A more organised system enables users to more easily find the information they require and complete the intended tasks.

UI Design

User Interface Design is the discipline of designing software interfaces for devices, ideally with a focus on maximising efficiency, responsiveness and aesthetics to foster a good user experience.

UX Design

The practice of User Experience (UX) Design is the coming together of many specific design related disciplines to improve the usability, responsiveness, uptake and aesthetics of a product or service.

User Experience

A general term that covers all aspects of a user's participation while engaging with something that has been designed. Usually when talking about User Experience in the digital design field it refers to the interactions, reactions, emotions and perceptions while using an app, service, website or product.