Running a SaaS/Web app for zero cost

Recently I had to help a friend with a web application which they wanted to be implemented very quickly and invest as low as possible for keeping the application running (they are on a shoe string budget). I looked around at the various PaaS/IaaS/SaaS building blocks they could use and most of them provided a free option. There are two types of free options in the market – time based vs quota based. Given my friend wanted to see if her idea had any legs, a quota based option was the best for her (having to pay because your usage went up is a good problem to have). So finally the solution was built using the following technologies/services –

  • Technology – Modern web application implemented using the latest JavaScript framework (AngularJS).
  • CI/CD – We used Github for code repository, bug/work item tracking and milestone planning. As for continuous integration, we leveraged the Travis CI (travis-ci.org) integration with Github.
  • Data storage – We used Firebase (firebase.google.com) since it provided the best JSON document storage which also had the added benefit of –
    • integration with the latest web frameworks (AngularJS)
    • realtime change notifications (this feature is amazingly good)
    • the free plan provides upto 1GB storage.
  • Image/File storage – We used Cloudinary (cloudinary.com) for storing images which provides one of the best in class solution for image storage, image manipulation and caching. As for regular file storage, Firebase provides a 5GB storage for files in the free plan.
  • Hosting – We used Firebase for this again since it provided custom domains in it’s free plan. Being part of Google, their hosting is backed by Google’s CDN system.
  • Telemetry – We used Localytics (localytics.com) for logging telemetry, measuring and tracking usage for the application. They provide a free subscription for upto 10,000 MAU.
  • Backend Services – any web application will require some server side processing (mainly for security reasons). Azure (portal.azure.com) provides a free plan for running basic web services in a shared environment. Their Azure Functions is also a great alternative for rapid deployment of backend functionality. They integrate really well with Github repositories which enables a reliable CI/CD integration.
  • Error Tracking – any web application needs a way of tracking errors faced by customers in the browser. There are several options available in this space, but we ended up using Rollbar (rollbar.com) since it was one of the best with good support for tracking deployments and deduping errors across deployments. Also the free plan allows you to push upto 5000 events per month (a good incentive to keep errors low in your application).

So with the above laundry list of areas needed to implement a web application, we created a web application which costs zero dollars to keep running. Pretty sweet deal!