I’ve recently been looking at job postings on Upwork.com for variations of “we need to build an app like Instagram.” These appear almost daily and in addition to the base requirement of an Instagram-like app, they also tend to include something along the lines of “Budget = $500-$1500.”
As a developer, unless you have the source code for that app already written from a prior job and are willing to sell it for that price, these budgets would seem impossible to meet. Or are they? Before we get to that, let’s break down the job into smaller tasks, look into what kind of expertise is required, and estimate the time to compete each task. For this discussion we will limit it to iOS just to keep things somewhat simple.
When people without expertise in software development come up with an idea to build “the next Instagram” or “the next Snapchat”, but this time centered around some common interest, they rarely realize exactly what is required. After all, these apps are fairly simple to use and understand, and there’s not a billion features like there are in other applications that they are familiar with, like a word processing application, so how difficult could they be to develop?
First of all, unlike a word processing application, data is not just managed within the application that you are using. Rather there is need for constant communication with a remote server that will do all of the heavy lifting. This is that “cloud” thing we’ve all been hearing so much about. This remote server is responsible for managing data for tens of thousands of users. Not only storing the photos that have been uploaded but all of the related data like the user comments and ‘likes’. The server will also deal with managing all of the user information such as login credentials, friendship relationships, and preferences. On top of that, there is the Push notification system, which adds even more complexity since this requires communicating with the Apple servers that actually deliver the notifications to the end user’s mobile device.
At the heart of the server is the database that is used to manage all of this stuff. The database will need to sort through potentially tens of millions of data records and deliver images and user data quickly and efficiently. Once this code is designed, implemented and up and running, it doesn’t end there – this data needs to be maintained and backed up! If a catastrophic event should occur on the server (ever have a personal hard drive go bad?), losing the user’s valuable content is unthinkable and an honorable business should do all that is possible to prevent this from happening. Another task that might be considered ongoing “maintenance” is simply providing a mechanism for users to report objectionable material so that administrators can deal with it properly. So yes, this is A LOT that needs to be considered and we haven’t even started talking about the app yet!
Let’s talk about the cost to build the server side. These are mostly just educated guesses and will vary widely based on the experience level of the person tasked with completing the work as well as the technology choices made along the way.
- The server itself. Some may be surprised to hear this but this part is relatively cheap and in the grand scheme of things almost a negligible cost (at least until we get to very high amounts of data storage). There is a plethora, profusion, glut, or simply MANY options for cloud hosting services, all competing for this ever-expanding market. Check out AWS, Microsoft Azure, Linode, etc.
- Database design and implementation. 360 hours
- Communications layer that allows your app to interact with the database. 400 hours
- Notifications system. 20 hours
Basic features involved in the app will be as follows:
- Communications layer to deal with sending data back and for with the server. 120 hours
- User interface design. 120 hours
- Build user interface to display the image stream. 200 hours
- Build user interface to capture and edit images. This one can vary widely depending on what we mean by “edit images.” For now, lets assume that we will just use the built-in image capturing and editing features provided by iOS so, in that case, there is nothing further to do. If we’d like to add some simple filters, like those provided by Instagram, we can take advantage of some open source software like GPUImage to save ourselves a lot of work. Building complex and crazy image effects like you’d see on Snapchat can of course take a lot of additional time and effort to develop.
- User settings and authentication. 80 hours.
- User commenting/liking. 120 hours
Server : 780
Grand Total : 1420 hours
Assuming that you could hire good software developers with solid experience in the required technologies (implying that you’re not paying them to spend a week learning what a UIImage is) for between $50-$100 per hour, the rough estimate to build your app would come to between $71,000-$142,000. Some may say that this is much less than what was originally spent to build Instagram but, suffice it to say, it’s a far cry from the budgets that people are targeting in their Upwork postings.
At the start of this posting I did imply that these unrealistic budgets might not be so unrealistic after all and I meant it! Enter Ostetso! (cue fanfare). With Ostetso, ALL of the server-side has be done for you and is maintained by us as part of the service. As far as the app goes, about 95% of the work has been done for you as well since Ostetso provides you with an SDK that is integrated into your app. Ostetso handles the image stream, user interaction, user settings and authentication. The only piece that is left for you to do is to determine what makes your app unique and to customize the look to your liking, handling the image capture and editing (if you choose to do anything with that at all). Ostetso does the rest. If you do wish to include image filters in your app, we have already built a complete open source iOS application called SharePictures that provides examples of how to integrate image capture and filtering into an Ostetso-based app. With Ostetso in the mix, the cost to build a viable Instagram-type app can realistically be brought down into the range of $500-$1500 or potentially even less.
Please contact us for more information.