SaaS Application start from scratch

Ivan picture Ivan · May 21, 2011 · Viewed 8.1k times · Source

In terms of expansion of my knowledge, I would like to try to make an SaaS application. I dont really care of app funcionality, but I would like to learn about technology behind it. So my question is, would be someone so kind and show me where to start? some good reading, tutorials, articles or books? I am most interested in:

  • every user, after registration, has its own playground at username.domain.com
  • app should use some kind of master script which will generate content for all users
  • what are pitfalls of such app?
  • what technology backend is needed?

I am open to Ruby on Rails solution. Sorry for my bad english, hope I make it clear. Thanks

Answer

Nerian picture Nerian · May 21, 2011

You want to build a multi-tenant solution.

Some things to consider:

  • Each one of your users should have an isolated database. This means you need to choose a database driver that can switch the database at run time. The id of database could be based on the user-part of the domain.

  • You can use Devise+cancan for registration. But you will need to redefine some Devise controllers so that they take in consideration the database.

  • You may consider reading Service-Oriented Design with Ruby and Rails by Paul Dix. It has a lot of interesting ideas that you can use to build an efficient service oriented app, which undoubtedly is the kind architecture that you should strive to create.

  • I suggest that you use Heroku to host your application. MongoHQ would be very nice for the databases - and they have an api to make CRUD on databases programatically.

  • And finally, remember to fully test your application. Capybara plus Steak for integration testing, RSpec for models and controllers and Jasmine for Javascript.

  • Also, don't implement your own payment system. There are a lot of providers that you can use like http://recurly.com/.