views:

78

answers:

2

I am thinking about offering two versions for my web application product:

  1. Software As a Service, where people access my applications via a URL
  2. Download version. They can download my web app and host it themselves on their web server.

An example for this business model is FogBugz.

Question: How to design my web application so that it

  1. Fulfills the above needs
  2. is easy to push upgrades to both versions
  3. is Customizable on SaaS front? That is, for customers who use our on-demand service can have their slightly different customized versions running on our servers. It's much like Fogbugz On Demand users can have their own different database schema at backend and so the bug tracking process can be a little bit different from others.

Edit: Oh yes, download version is needed, because the users can choose to host their data on their servers instead of mine.

Not sure whether there are objective answers to these questions. But I would appreciate any help and suggestion.

A: 

Are you sure you need to offer the download version?

  • Providing robust install programs for web apps with database integration is a non-trivial task. I remember Joel commenting a (long) while ago that a huge percentage of their FogBugz support calls were related to installation.

  • Pushing updates in a SaaS environment is more straight forward that providing an update component to an app installed elsewhere, and typically you can control (and mandate) the upgrade policy in the SaaS environment.

  • All the time that you would spend on developing and testing the install and update programs could be spent instead on improving your feature set which has much more impact on users.

  • Customizability depends a lot on the details of how you product is implemented. If you intend the SaaS offering to be multi-tenanted then you obviously can't modify the database schema as part of the product. You could use a database per customer, which is more resource intensive. Or store the extensions in a table that stores (field, key, value) tuples. This is expensive at runtime, but may be acceptable depending on how the data is accessed.

  • From a business perspective SaaS products tend to be subscription, so you get recurring revenue every month, instead of a single payment for a download version. The lower start up cost of a SaaS product makes it easier for customers to start using your product.

Rob Walker
Yes, there is a need to offer download version.Simply because customers may choose to host their data on their server.
Ngu Soon Hui
CAD bloke
A: 

I would consider the parts of your stack that would be in the downloaded version in terms of size and cost.

e.g. you'll need a database of some sort but the price/size of each may be a limiting factor for your sale. If your supported DB has a hefty price tag it will likely hinder your sales.

Better yet, if your application can work across multiple DBs (e.g. Oracle, MySQL, Postgres, SQL Lite, MS SQL Server) then your clients can leverage either a free/cheap DB, or use an existing in house DB.

scunliffe