In recent weeks I’ve been working on a large personal project, and I’m quickly learning the importance of maintaining focus on the problem at hand. Every project attempts to solve a nuanced problem but requires familiar modules to accomplish the goal: hosting, user login, authentication, file uploads, and the list goes on. These requirements often take significant resources and time away from the central problem you are trying to solve. They are giant distractions, and it’s likely that somebody has already solved the problem for you.
It’s romantic to think that you’ll build your whole app, top to bottom, from scratch. But when you start to tick away the hours building your own libraries that are auxiliary to your app, you may begin to question the importance of reinventing the wheel (over and over again). Below is a list of commodity services that neatly solve common tasks and will help you get your web app rolling quickly.
1. User login – Stormpath
User management (login, groups, privileges) is something that can put the brakes on a project in a hurry. There are a lot of decisions to be made and it’s easy to become sidetracked by the minutiae of user security. Stormpath is a user management API made for developers that has already solved many of these problems.
2. Service Authentication – Oauth.io
Third-party authentication into services like Twitter, Facebook, Linkedin, and others can be a nice feather in the hat of any application, but it comes at the price of maintaining the differing methods of Oauth used by each service. Oauth.io resolves this pain point by giving developers an easy way to authenticate 80+ services, and you’ll spend a lot less time looking through API documentation. Careful though; I was recently disappointed to learn that Oauth.io doesn’t support Buffer, which came as a surprise. However, more often than not this service will fit your needs and save you a boatload of time.
3. Email & Notifications – Postmark
Notifications are essential to your project, but can require a subproject on their own in order to monitor which notifications are being delivered to whom. Postmark provides a very simple means of adding transactional email delivery to your web app, and it’s dirt cheap. The API is easy to use and there are many pre-made libraries for integration with your favorite language. Of the commodity services I use, Postmark is probably my favorite.
4. File Processing – Transloadit
File uploads are a technical barrier that can require surprising infrastructure to accommodate. File type validation, image resizing, hosting, collision-checking… it can be a big undertaking that distracts from your app’s primary goals. Transloadit is a file processing service that works brilliantly for almost every file type you throw at it. It works transparently with your app and pays for itself over and over again.
You can attempt to create each of these commonly needed modules on your own, but chances are your solution won’t be quite as good, and you’ll burn tons of time. Instead, stick to your core competency and get a zero-to-sixty solution in a fraction of the time by delegating distractions to established services.