Saas Dynamic Layout?

We are building a SAAS to replace our 1to1 obsolete service for our clients. I try to find as much information as I can about SAAS on the net, but relevant documentation is hard to find.

We have design a new layout structure and would love to share and get feedback before we pass the next month coding the whole thing.

Basic concept

We will create a webGUI of our creation that will use templates and widgets to create dynamic website for our clients inside our SAAS.

The client dynamic website is create as follow:

1- Fill tenant information form:

TENANT table

  • company name;

  • contact info;

  • Logo;

  • …etc

2- Create the sitemap treeview relation inside database


|— Home (template_7, widget3, widget3, widget4)

|— Service 1 (template_7, widget4, widget6)

|— Service 2 (template_7, widget2, widget4)

|— Biography (template_7, widget1, widget4)

|— Contact us (templatet_7, widget5, widget8)

3- Create tenant[Component]‘Can only access current tenant instance’;

Create theme[Component]‘All templates and widgets will use L.E.S.S for the chosen theme’

4- "Site views" are now templates, extract tenant info from DB and apply inside template.

5- A stack of widget from the function loadWidgets() will load the appropriate widgets,


template_7 (2columns)



 <div id='compagnyName'>

     <?php echo $tenant->compagnyName; ?>


 <div id='mainMenu'>

     <?php $this->loadWidgets(widget_stack0); ?>


 <div id='column1'>

     <?php $this->loadWidgets(widget_stack1); ?>


 <div id='column2'>

     <?php $this->loadWidgets(widget_stack2); ?>





Home | Service1 | Service 2 | Biography | Contact us

Some widget here Some widget here

Some widget here[/color]

Now, is this the most efficient way to create

  • reliable,

  • fast,

  • easy to use,

  • Quick to create,

  • easy to debug,

  • flexible

SAAS system?

Thank you for your time O0

a small and short question(s) enhances quick response. can you make it short? thanks

Is this the best approach?

If not example/documentation++


Up! ::)