Seven years ago, I started a project called CompositePage. It added a drag and drop UI to Zope 2. Others built on it and created CompositePack. I applaud them for their efforts.
However, today I think the CompositePage UI pattern is the wrong idea. The CompositePage UI pattern is to render the page with extra markup that allows people with the necessary privileges to move objects around the page. The idea works technically, but it incurs a lot of technical issues for template authors and it is frequently difficult to explain to users.
I saw an implementation of a much better idea a few years ago. The better idea is to present a greatly simplified representation of the page when in design mode. Ideally, the simplified page should contain only basic colors and fuzzy text, so as to draw the user’s attention to the widgets, not the page.
Now it just occurred to me that CompositePage could implement this idea easily by letting developers define two templates per layout: the real template and the representative design template. Why didn’t I think of that before? That would be quite friendly.