Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

One Neos CMS - many websites


Published on

In this talk you'll learn about what options Neos CMS has to create multi site solutions with great performance and usability.

Published in: Technology
  • Got a new Iphone 6 in just 7 days completing surveys and offers! Now I'm just a few days away from completing and receiving my samsung tablet! Highly recommended! Definitely the best survey site out there! 
    Are you sure you want to  Yes  No
    Your message goes here
  • Tackle Odds With Lottery Secrets ★★★
    Are you sure you want to  Yes  No
    Your message goes here
  • Snaptits big-breasted girls snaps only. View pics... 
    Are you sure you want to  Yes  No
    Your message goes here
  • I made $2,600 with this. I already have 7 days with this... ●●●
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

One Neos CMS - many websites

  1. 1. One Neos - Many Websites Sebastian Helzle Neos Conference 2018
  2. 2. Sebastian Helzle • Product Owner 
 @ / Karlsruhe • Neos CMS Core Team Member • @sebobo
  3. 3. What will be discussed in this talk • Why do we want to have many sites in one Neos • What does Neos offer to make multisite setups easy • How to create a multisite • Summary • Time for questions
  4. 4. Why do I talk about this topic?
  5. 5. Motivation for having multi site setups
  6. 6. The main benefits • Benefits for development & maintenance • Optimized editor processes • Launch new sites and microsites with ease • Business (money) advantages
  7. 7. Benefits for development & maintenance • Only one codebase to be taken care of • Increased security • One server setup • One integration pipeline • Features roll out to all sites at the same time • And can be limited with feature flags • Optimize one site and get a benefits in all of them
  8. 8. Optimize editorial process • Have reusable content between sites • Have same usability and processes on all sites • Only one login is needed • Cross site navigation menus possible • Reuse assets like images, documents and others
  9. 9. Launch new sites and microsites with ease • Work on them in parallel to existing pages • Manage sites and domains in the backend • Secure the domains until Go-Live with an authentication • Then: • Turn of authentication and go live • If necessary map live domain to server and then go live
  10. 10. Business benefits • Reduced longterm cost through lower development & maintenance efforts • But slightly increased initial cost for the first two sites • More up-to-date content with improved editorial process • Reduced time to market with new sites • Consistent corporate identity
  11. 11. Neos offers many advantages in multi site setups
  12. 12. Reuse content from other sites • Examples: • Content for privacy, license or legal texts • Banners & advertisements • Records of employees & authors • Categories & tags • Works with any reference property • Neos will show the source by the domain
  13. 13. Change the starting point & reference any page myPageReference: type: reference ui: label: i18n inspector: editorOptions: placeholder: i18n startingPoint: '/' nodeTypes: - ‚Neos.Neos:Document'
  14. 14. Or use one site as global content hub myContentReferences: type: references ui: label: i18n inspector: editorOptions: placeholder: i18n startingPoint: ‚/sites/contenthub‘ nodeTypes: - ‚Neos.Neos:Content‘
  15. 15. Sitegeist.Taxonomy • Cross-site categorization & related content system • Lives inside it’s own content tree • Still experimental! • Sitegeist.Taxonomy
  16. 16. Hint: Give every element a fitting title. You will find it much faster!
  17. 17. Using content dimensions for multisites • Have a master site • Use dimensions to customize content on children sites • Needs mapping of domains to dimensions • Could get more complex with multiple languages at the same time • See case study by CORE4 (and ask Bernhard Schmitt @nezaniel)
  18. 18. Handling site specific configurations • Multiple Settings files in site packages will override each other • Could be solved with separate Context per site but has drawbacks • Core caching is not shared • Needs more configuration on the webserver • Context must be set correctly for console commands • Put global configuration into one Settings.yaml • Have site specific configuration in the site node • Use a custom nodetype for the homepages
  19. 19. Some examples • Social media links • Parameters for webservices • Site specific footer links • Config for frontend plugins
  20. 20. Example: Rootpage nodetype 'My.Vendor:RootPage': superTypes: 'Neos.Neos:Document': true ui: label: i18n icon: ‚icon-home' properties: twitterUrl: ... companyName: ... contactFormRecipient: ... theme: ... apiToken: ... trackingId: ...
  21. 21. Theming and customizations • Use homepage nodes to set themes & customize • Change logo • Change typography, colors, iconset, … • Use 3rd party packages to extend Neos multisite capabilities
  22. 22. CM.Neos.ThemeModule • Customize colors & typography • Supports multisites • Add custom SCSS • Add additional custom settings • CM.Neos.ThemeModule
  23. 23. Separate site handling if necessary • Use roles which are locked into one site • Use dynamic policies which match users to sites • Match asset collections with sites to keep assets separated
  24. 24. Some notes on performance • Many small sites behave similar to one bigger site • Neos can handle a lot of content, no matter where and scales nicely • Real project with 8 sites containing ~50.000 nodes is no problem • 100.000s of nodes should work too • Future Neos developments will make this even more scalable • Site selection in backend might be harder to use with > 30 sites • Could be optimized easily in the future
  25. 25. Let’s create a multisite
  26. 26. Start by creating a new site in the Sites Management module
  27. 27. Create a blank site in your existing site package
  28. 28. The new site will need a bit of configuration
  29. 29. Configure your site and add a new domain
  30. 30. Set the domain you want to use
  31. 31. Map the domain in the web server onto your Neos installation
  32. 32. Test your new site 🎉
  33. 33. Other ways to create a new site • Use the site management module to create a site package with a new site
  34. 34. Use the kickstart command from cli „flow site:create“
  35. 35. Notes about creating sites • Creating a site package is easier with the package „neos/site- kickstarter“ • You can also build a site package manually if you know what you do • You will miss out a useful boilerplate • If you create a new site package you have to import the new site manually • Don’t forget that additional site packages should depend on the main one • Don’t forget that Settings.yaml files have one hierarchy
  36. 36. Summary • Neos is already well prepared to handle many sites • Many use cases are already solvable • Some use cases need small adjustments • Performance will continuously get better with future Neos versions • Start using the feature and forward use cases and experiences to the core team • Contribute or sponsor changes that could benefit all projects
  37. 37. Questions? 
  38. 38. Sources • •