These Amazing Services Will Speed up Your App Development
08.07.2015 | 5 min read
Years ago when starting to work on a new web application developers had to do everything on their own. Development costs and barriers to create new products were high, you had to have your own hardware, configure your own email server, load balancer and a myriad of other services.
With the advent of cloud computing and easily accessible APIs this fact is no longer true and you can achieve much more in the same amount of time. This shift has already been happening for a couple of years but recently with extension to existing services and the advent of new ones it is even more visible.
Here’s a list of selected services that can dramatically increase your turnaround time in app development. Some of them have been around for a couple of years and some are very new.
If you are not using even one of them or their counterparts it means that you must be doing something seriously wrong.
1. Amazon Web Services
AWS is the behemoth that was the pioneer in getting infrastructure and development costs down significantly. It is the “default” way to simplify your infrastructure setup time and cost while still using the tools that most developers are familiar with.
If you haven’t used it from the start the number of services available can make your head explode, however there are a couple of those that will make your infrastructure setup extremely easy.
The lowest hanging fruits you can get from AWS are:
file storage and CDN (S3, Amazon Cloud Front)
application servers (EC2)
database servers (RDS)
load balancer (Amazon Load Balancer)
Contentful has been around for a couple of years and provides a nice UI and a stable API for managing text and media content. This means that you no longer need to spend time on integrating an external CMS directly with your codebase.
Contentful allows you to create your own data model that can represent blog posts, news articles or any other type of content and get access to it via a fast RESTful API. You can edit content with an editor that allows collaboration and versioning.
This is much more than a typical CMS integration would get you and has a potential to shorten development lifecycle significantly.
This may be the most controversial one on the list and one of the newer services that has been around since early 2014. Userapp.io manages your user database, social authentication and potential payment integrations for you.
Using an external application to handle your user database seems to be going a bit overboard. However if you are writing an MVP or a small service and you want to focus just on your project features it may help you a lot. This is especially true when you are working on a pure JS application that may not require any backend or app server otherwise.
Every SaaS product needs to communicate with its user. Customer.io helps automate and manage that process by using a lightweight API that only needs to gather information that may be necessary for your marketing process. Integration is extremely simple and exposes your customer data to your non technical staff.
If set up properly it enables your product owner and sales team to manage most of the interaction with customers. No need for your developers to hard code special cases and wait for the next deployment for a change in email content. Need to send a message to a selected group of users? You can do that without the hassle of your developers thus giving them more time to focus on development of core features of your product. It makes no sense at all for your team to rewrite this type of logic.
Recurring payments is yet another aspect of every SaaS product that needs to be implemented. If you think about billing and all of the edge cases like: upgrades to higher plans, downgrades, discounts, refunds that you would have to implement on your own your head may very well start to ache. This is yet another very narrow area that can and should be handled by an external service.
Recurly can handle multiple plans, trials and setup fees and handles those pesky edge cases. It also integrates with most of the payment gateways. Another example of an aspect of your product that your development team should not work on and rather use an external service.
You could say that an approach where you use so many external components will prevent you from scaling up and you will run into obstacles and problems with those services’ flexibility. However if you consider the role that time to market plays when launching a new product it is very reasonable to go with one or all of those options.
When your application becomes successful you can always create your own specialised versions of components that are lacking in any way.
If you know any similar services that can even further speed up development please let us know by commenting below!