new design whilst maintaining the old design


Hi All,

Looking for some advice/best practice.

We are implementing a new design over existing content, there will be some new pages but most of the content would be re-used.

My issue is that the our content editors want to start creating the new structure and content, whilst the existing site still runs.

I've thought about creating new page types but this would be a lot of duplication.

The other idea is to create a new setting within the layout template that delivers the new design based on a setting that is set within the new site heirarchy something like:

old homepage (no flag/setting, use old design)

 - old pages

new homepage (flag/setting to use new design)

 - new pages and copied pages from old design

Is it best to do this in the layout file? I'm stuck for ideas other than that.

Thanks in advance,


Mar 30, 2021 22:19


If you have created a new page type then you can convert the existing pages through the out of box feature provided by Episerver

And if there are no page type changes then showing the design based on the flag is a good idea.

You have to check the flag on the layout if the changes are related to some CSS library change or your new changes in the existing design file. And if changes are not huge then you can check this on-page level as well and render the new style only when the flag is on.

Mar 31, 2021 6:53

I've recently done this and a if there's no content type changes the flag is a good idea then you can build the new site up in parallel while maintaining the old site. In my case I juse created a dropdown on the home page node between the 2 sites and loaded a different CSS sheet although performance wise if you're separating out CSS/JS based on asset there's a little more work and if you're using bundling you'll have to use some code to adjust. I wouldn't suggest bundling it all together, you should make sure the assets are split. The other thing to think about is where you setup the content, if you're on the DXP although you can use import/export it can have issues with large sections so I would get the code deployed to production and use that where possible then you can sync the data down easily using the PASS portal content sync.

Mar 31, 2021 8:27

We created a multi-site application that uses the same blocks and structure for the most part across 3 or 4 sites, currently. We use a Settings page model, and on the Settings page there is a setting identifying what "site" the current site is. Aside from numerous different interactions and actions that rely on that setting, the CSS and some JS modules applied depend on this setting.

Each site has an assets folder that contains the CSS, JS, images, etc... for it. The path to this folder is controlled by Site Name SelectOne property on the Settings page. It functions kind of like a theme swapper/manager. This would match your New Site, Old Site approach. We also attach a couple additional properties to the Enum values to control some display names and IDs for those other actions, so the Enum becomes a one-stop-shop for controlling different parts of the site based on that drop down.

Mar 31, 2021 21:06

Currently working on a similar project , a client is overhauling the look and feel without changing or updating content . Our approach is to create a 2nd site running on a temp domain,  developing new templates which are extensions to the old templates so we can reuse the content , when the new site is complete will switch the domains 

This approach wont affect the site from the SEO perspective, saves time as the content is already there , we just have to update the templates  , site CSS and other assets . 

Apr 01, 2021 5:07

Thanks everyone,

I ended up going with a flag in the layout model that is set in a page property on the new homepage. I was then able to perform the logic in the view and then separated the new and old in new view files.

And Hello Mukesh! We worked together back in the Netcat days :)

 var layoutModel = new LayoutModel
                UseNewDesign = SiteSettingService.Instance.GetSiteDesignFromParent(new PageReference(currentContentLink))

Apr 06, 2021 23:14
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.