I have a complete CMS solution I want to offer individually as well as a hosted service. The ideas is that a user logs in to my server, adds content and does changes. If he or she is done, the should be able to publish their site to their own server/domain (might be on my own server though). If it's a remote server I would FTP the changed files to theirs. So it should be tracking changes and do incremental updates. I want their sites to be as flexibile as possible, structure wise.

Personally I was thinking of using cUrl or a similar tool to 'spider' the dynamic pages and gather changed files for upload. This does consume bandwith since it uses HTTP calls. All my scripts look like regular .html files (with extension) so that's no problem.

Another option is to generate content each time one INSERTS, UPDATES or DELETES on the database. This works too, since I use a workflow like handling of each of these 'events'. Things get tricky with custom layouts and breadcrumbs for example. Since content can be in multiple locations and use different templates.
That's why I tend to prefer the 'spider' approach.

Any help is appreciated.

- prefab