Rapid Prototyping For Simple SaaS Apps At Zero Cost

prototype-mindmapSay you have an idea for a (small) SaaS app. If you recall from a previous article, step 0 should not be to open your favorite IDE and start coding. Instead, you should think about the whole picture of the idea, your customers, channels etc. Assuming you did do your homework well, sooner or later the moment comes where you need to start building something tangible, if only to test the technical feasibility or to convince FFF (friends, family and fools).

Luckily for you, there is a ton of stuff out there that can help you get up in running in no time and no money too. Here's my take on it:

  1. Google for a "ready-to-use" solution. You'd be surprised how much (open source) software and services are out there. If your idea is in the e-commerce space for example, you'll have a store up and running in no time via services like online services like Shopify, Amazon or Squarespace make getting started even simpler. Want some more freedom? Projects like Magenta, Drupal or Wordpress can get you very far very fast. A bit of tweaking and configuring and your 0.1 version is ready to launch.
  2. Find a good "Starter app". If step 1 doesn't yield a satisfactory result, and you decide to start development from scratch, well, don't. Google again for "starter apps". Starter apps are "empty" applications that already have basic building blocks setup according to best practices. Signup/signin/forgot password? Done. Need Facebook and Twitter login integration? Check. Virtually every self-respecting framework or language offers so called starter apps that give your development a headstart. Just clone their GitHub repository and off you go. A few examples of starter apps: Rails Composer for Ruby on Rails, Mean.io when you want to develop in NodeJS, Zend Skeleton application for PHP developers, Android Kickstarter, …
  3. Twitter Bootstrap for decent styling from day one. I have to admit, I am not, I repeat, not a designer. Styling a web app is not my forte. Thanks to Twitter Bootstrap, even my forms look attractive out of the box. Twitter Bootstrap comes with a number of useful components like nav bars, carousels and forms and throws in responsive design as a bonus point. Granted, if you stick with the standard look and feel of Twitter Bootstrap your app will look like a gazillion other apps but hey, at least it looks decent without having to spend too much time on it. Most starter apps include Twitter Bootstrap anyway. If you're looking for alternatives, Zurb Foundation gets positive press too.
  4. Setup a free private Git repository at BitBucket. You'll want to be using a version control system for your code. Since a couple of years, Git is the darling of many (open source) projects. I definitely encourage you to have a look at it, even if it's only to interact with the source code you'll find on GitHub. While not strictly necessary for a one person project, it's best to have your code "backed up" somewhere. BitBucket offers private Git repositories for free, for up to 5 users. As a bonus, the folks at BitBucket released a nice and free Git client, called SourceTree, that I dare to recommend. Alternatives for BitBucket are a paid account at GitHub.
  5. Single line deployment with Heroku. Heroku is one of the first Platform as a Service (PaaS) providers. Originally focused on the Ruby on Rails ecosystem, Heroku matured and now supports many languages and frameworks. Provided the technology you have chosen is supported by Heroku, deploying your application is just a "git push heroku master" away. Granted, Heroku might be too limited or too expensive once you start getting traction, but for the first 100 deploys, it's probably OK, and free. Alternative PaaS players would be Cloudfoundry and OpenShift, to name just a few.
  6. Integrated Analytics. You want to know how users interact with your service: which features they use most, which part of your application they almost never touch, etc. Analytics, like Google Analytics, will help you gain that insight. Just add a small Javascript snippet to your app, and data will start coming in. Once your application grows a bit, you'll may want to look into the Google Analytics Event-API to gain even more insight into how exactly users are perceiving your app. Be sure to setup some "goals" and "conversions" to track your progress. Alternatives to Google Analytics are Piwik (open source web analytics), Kissmetrics and a ton of others.
  7. Creation by integration. Bold statement here, but 80% of the functionality of your application is not unique, nor differentiating. User account and password management, sending emails, billing, storing data… all things your application needs, but they hardly differentiate you from others. So don't spend time building these kind of things: search on GitHub for projects that already do this or look for existing services that can take care of that. Oftentimes they offer limited free plans to get started. Over time you might need to internalize some of this, but for a first generation MVP, it's probably good enough.

These are just some of the tools and tricks I use to prototype web apps, curious to hear what you use.