Lemiffe Music, Software, Stories & AI

Building a web application for $5-10 per month

SAAS companies seem to fulfil almost every need lately; from VCS to mailing, from authentication to screen sharing, from image and video processing to caching and app hosting. Interestingly enough, a lot of these companies offer basic tiers for free, so it is becoming increasingly possible to launch a web application where most of the work is done by 3rd parties, with a minimal budget.

I started wondering recently if it would be possible to launch such an app, using as many 3rd party services as possible to fulfil the necessary functions (such as authentication and storage), with a budget of $5 to $10 USD per month.

The following is a graph representing my idea for the architecture of such an app, describing the interaction with these services. Most of these are free (except for the purchase of a domain name, Google Apps, and DigitalOcean, which have very accessible plans):

image

The goal of my small research was to verify if it would be possible to:

Build an SSL-enabled web application with monitoring + CDN + hosting + authentication using OpenID, striving for minimal cost while offloading as much back-end, data, and functionality to cheap or free 3rd party services.

Every 3rd party service mentioned in this graph had to fulfil the following criteria: 

  • Free (or very cheap)
  • Longevity (has been thoroughly adopted by the market, or major companies)
  • Reliable (at least 99% SLA)

This is a list of tools & services to get your new product up and running for dirt cheap:

  • Domain, DNS, hosting, and caching
  • Authentication
    • OpenID Connect is an initiative by several large companies to make auth simpler (like Persona by Mozilla)
  • Databases & Storage
    • Self-hosted
      • MongoDB is a great/easy NoSQL solution
      • PostgreSQL is widely used and supports SQL/NoSQL
      • MySQL and** MariaDB** are standard SQL RDBMS that have gone through the test of time
    • Remote
      • Google Cloud DataStore is your database in the cloud (and it has a free plan as well)
      • Amazon S3 (for storage, in case you have a large amount of images/files, optional in this case)
  • Mail
    • Mailbox hosting
      • Pawnmail - Email hosting for free! (tried it for a year and so far it seems to work great)
      • Google Apps - Mailbox functionality for your domain ($5/mailbox) in case you don’t want to set up a server
      • Postfix mail server - You can host it yourself (using Postfix), but be prepared to spend a lot of time setting it up
    • Mass-mailing systems
  • Graphics and icons
    • Unsplash (and Flickr freeuse) offer good images for use in your site for free
    • Font Awesome provides a quality icon font for free
    • Iconifier.net (create your favicon and apple icons for free)
  • Monitoring, logging and analytics

Finally, the application itself could be built in this way:

  • Back-end: Python + Flask + Tornado. Flask is a framework which allows you to generate APIs in a simple/scalable way, and it is very easy to get started. Add Tornado to handle concurrent requests. You could use the PyOIDC wrapper to handle authentication, and the rest could rely on a simple architecture (Entity - DAL - BLL - API).
  • Front-end: Built with HTML5 + Bootstrap (easy way to get up and running fast), AngularJS (with controllers and services to communicate with the back-end), SASS (or LESS), and Gulp to compile/merge everything.
  • Source & deployments: You could use Bitbucket with two private repositories (front-end / back-end) for free, and Capistrano to deploy to your server.
  • Testing: Protractor and/or Jasmine

As easy as that!

If you have any suggestions to how I could improve this chart, or any services that would improve (or further delegate core functionality to free/cheap 3rd party solutions), please let me know in the comments!

* Note: You could use Heroku (which has a free tier) instead of DigitalOcean or Rackspace, but who doesn’t love full control over his/her server?