title: Creating a 'website builder' - How would I architect it?
body: <p>I've been tasked with adding a website builder to our suite of applications. Most of our clients are non technical small business owners (brick and mortar stores, mom and pop shops). I've been told that I should be looking at <a href="http://www.blogger.com/template-editor.g?blogID=4010125631613458355" rel="noreferrer">Blogger Template Editor</a> and trying to see if I can make something that fully featured and easy to use. The idea being that our customers should be able to bring their business online without knowing anything about web development.</p>
  
  <p>I mostly work with c# and silverlight on a day to day basis. So going with .net is likely the best way for me. ASP.NET MVC and SPARK look very attractive, but I am not too sure about how I will accomplish the following things</p>
  
  <p>1- How do I build a templating system that allows a designer to create templates that use a certain format and are compatible with my app. Is there any generic framework out there for this? </p>
  
  <p>2- How would I persist the changes the client makes to his/her site (for example the client changes the background color and adds a list of ingredients on a page).</p>
  
  <p>Edit: Yes I am aware this is a big task and I am potentially looking at writing a fullblown CMS, however our clients need very limited and basic functionality to begin with and I imagine this would be an iterative process, with perhaps more developers coming on later if the product proves to be successful. I will make these concerns known to our manager though.</p>
  
  <p>Initially I am planning on just giving them a few templated layouts and allow them to customize what goes in the various sections as well as the colors and images with CSS. <a href="http://en.wikipedia.org/wiki/Haml" rel="noreferrer">HAML</a> and <a href="http://en.wikipedia.org/wiki/Sass_(markup_language)" rel="noreferrer">Sass</a> look like they could be useful and I could persist all user customizable parameters in a database. </p>
  
  <p>Am I thinking along the right lines or completely off the mark here?</p>