We recently launched the Story Licensing application which uses some of the most powerful development tools available. By offloading the non-core development functionality onto available API services, we were able to build this application faster than I ever could have imagined. I'm excited to share with you how we did it.
TL;DR
Check out the live Story Licensing app
The Requirements
Every application starts with a goal and requirements. For this application, the goal was to acquire leads interested in purchasing the rights to repost online content from publications in the AMI Publications network. Our requirements:
- Stories (for our app, stories published on @ami need to be quickly and easily searchable
- Stories need to indicate a ranking of publicly available social validation (Claps) to the interested lead
- Ability to capture the lead's email (before the search action)
- Ability to capture the bid request data: story title, lead email, search term bid and send an email to the admin
- Ability to manage copy content by a content manager via a content management system
The Services
For this app we knew we didn't want to build and manage everything. Instead, we wanted to offload non-core development to the best available services, only building what we need. Any web project with a time crunch (pretty much every project) would be well-advised to do this so you don't unnecessarily reinvent functionality that already exists at a high level. So for this app we decided to use:
- Cosmic JS for content management, data storage, this is also where our Medium articles are stored using the Medium Backup Application.
- Algolia to search stories. It definitely satisfies our speedy search requirement (It's FAST!)
- SendGrid for sending email notifications
- @ami for supplying the story library
So with all of these, we've got the best in class services for the respective functionality. And building our application would involve locking these services together.
This is an abbreviated version of the full article posted on Cosmic JS.