Solved

Multi site set up

  • 4 January 2024
  • 7 replies
  • 208 views

I am working with Contentstack CMS using NextJS for front end.

What is the recommended way to create a multi domain sites? Should we create a separate stack for each domain? Is there any starter kit or demo app available with multi site/domain feature implemented?

icon

Best answer by Victor Monsch 4 January 2024, 13:51

View original

7 replies

Hi Nagaraju Chatta,

 

Rather than looking at those sites themselves, a good practice is to look at the content itself and its business usage.

For example, if the sites are frontend channels displaying mostly the same content (even if translated), then it does not make sense to have multiple stacks.

See a stack as a separate “project” within your organization: maybe different departments, most of the time working on different goals.

 

Many Contentstack users handle multiple sites within one single stack, using a combination of Content Types, Environments, Taxonomy and Role Permissions to tie it all into a cohesive and intuitive experience for the content editors.

 

Hope that sheds some light on the topic. Feel free to share more on what you are trying to achieve. 

Hi @Victor Monsch 

Thanks for the answer. 

Our requirement is to create multiple sites with the flexibility to re-use components and content/entries among them. 

While using the same stack for multiple sites, can we use single code repository for front end? What is the recommendation for NextJS app while implementing multisite in single stack? How routing can be implemented?

And also how to configure Contentstack Launch for multi-domains while deploying? Please share if there is any blog available.

Thanks for your help !!

Since one goal is to reuse content (assuming it is not an occasional thing but a good amount of reuse), a single stack looks alright. You can of course reuse and share content between multiple stacks by referencing with the Interstack Reference Marketplace App, but if the goal is to share a lot of content then might as well do it in one stack. From what I understand so far the latter applies, of course up to you to determine what works best for your organization.

 

You can use a single frontend codebase yes. My recommendation would be to have common code but different deployments, as each site will have a different configuration (e.g. different theming, pointing to different content types, applying different filters like Taxonomy terms, ...).

 

In Launch, you can have multiple domains configured per environment. But in this case, since there will be differences namely in the configuration / env variables, it might make more sense to go for separate environments.

Thanks for your help @Victor Monsch.

So we can use below approach. Right?

  • We use single stack with separate environments for each site and publish specific site content to the respective environment
  • And for deployment, create separate deployment for each environment in Launch.

 

 

 

Yes that is one of many viable approaches. If it works for your use case then all good.

Happy to help :)

​Hi @Victor Monsch 

 Is there a feasible approach to implement multi site using single deployment for front end sites while using single/multiple stack and single code repository?

For example,

I manage a brand website, contentstack.com, catering to various markets such as contentstack.com/au, contentstack.com/fr, and contentstack.com/in. Each of these market-specific subdomains features differences in content and component ordering.

My goal is to have a unified front-end application deployed once, while maintaining separate back-end stacks in Contentstack. Each stack/site should have its own set of selected components and their specific order. I'm seeking guidance on how to achieve this with a single deployment of the front-end application.

Thanks for your help in advance !!

Hi @Nagaraju Chatta,

 

Yes, you can absolutely consume multiple stacks from one frontend deployment too.

This all comes down to the configuration of your frontend and is not really dependent on Launch. You would have a localization routing logic that fetches from a different stack depending on the market the user is browsing in.

Here, adding a language/locale would essentially be as easy as adding it in the settings in Contentstack, and adding it in the configuration of your frontend.

 

Whether you need multiple stacks or not depends on the reuse of content between markets as stated before. From what I read so far I would just have a single stack setup with multiple locales in it.

 

Hope that sheds some light on the topic.

Reply