SlideShare a Scribd company logo
1 of 42
Download to read offline
Building a
CRAPLOAD
 of Web Sites
 in dotCMS
OR

 Creating a
Site Building
 Framework
   in dotCMS
WE ARE CURRENTLY CONVERTING

700 WEB SITES
        to dotCMS 1.9
CONVENTIONS
    are your friend
A connected base framework of HTML, CSS,
JavaScript, Velocity, and Containers that provide a
solid foundation for all sites.
Why Conventions Are Awesome
• Keeps your team on the same page
• You can go into any project and understand what’s going
  on, even if you didn’t start it
• You can go to edit an existing site and know exactly where
  to go to make changes
• Speedy implementations of CSS, JavaScript, Velocity, and
  other cool stuff
• Enables designers and project managers to implement
  complex functionality
• Ensures quality control
How we're using conventions
• “Pluggable” pieces
• Sharing as much code as possible across hosts
• Naming conventions
• Folder structure
• Browser Support, Graceful Degradation, Progressive Enrichment
• jQuery minimalism
• Project Stages and Basecamp
GLOBAL
  vs.

LOCAL   be lazy
In 1.9 everything lives self-contained on a host.
Because the sites run on the same code base, this
means that we would end up with lots of dupli-
cate containers, vtls, CSS, and jQuery plugins.
Global Host
• The host where we distribute all the global pieces of our
  site building framework.
• Host CSS for base layouts, print styles, and mobile styles
• Host jQuery plugins and other global JavaScript
• Host all containers for velocity powered functionality and
  HTML
• Global content delivery (CDN)
• Host files referenced by widgets and containers used
  across sites
Basically, we come back to the age-old principle
of being lazy. Do something once, and then reuse
it a thousand times.
AND NOW
   AN
EXAMPLE
St. Mark's Hospital
CSS

      GLOBAL HOST




      reset.css   base.css     print.css   mobile.css   ie6-reset.css




                  LOCAL HOST




                  screen.css    ie7.css      ie6.css
reset.css
• resets all the annoying default styles that browsers love to add
• provides a blank slate to start from
• on global host and cached across all of our hosts
base.css and screen.css
• controls basic layout
• hosted globally
• @ import the base of your choice for a layout
• screen.css provides layer of typographic and graphic styling locally
print.css
ie6-reset.css
• not all browsers, especially older ones, are going to see
  exactly the same design
• providing a layer of content level support by using one
  stylesheet that provides a simple, usable design
• using the same HTML naming conventions makes this
  really easy
mobile.css
• User Agent detection
• iPhone specific Meta tags
• Currently works with iPhone, iPod, iPad (he he) and most
  other mobile browsers
• Fully CSS-powered; no JS
jQuery
Omniture Analytics
Omniture Search
• meta tag based indexing controlled by logic in the head container
• giant content pull for indexing (site-map.dot)
• xml based response
• results page widget
ehc Components
• Distributed across all our sites, tying into our global host.
• similar to dotCMS’s Application widget
• Versioning by structure. ehc Components v1 widgets, v2, v3 ... v#
Watch for more details on
        our blog.

More Related Content

What's hot

Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
Chris Canal
 

What's hot (20)

Jekyll Presentation Slides
Jekyll Presentation SlidesJekyll Presentation Slides
Jekyll Presentation Slides
 
Introduction to blogging with Jekyll
Introduction to blogging with JekyllIntroduction to blogging with Jekyll
Introduction to blogging with Jekyll
 
Introduction to web development
Introduction to web developmentIntroduction to web development
Introduction to web development
 
Dangerous CSS
Dangerous CSSDangerous CSS
Dangerous CSS
 
How To Work Faster & More Profitably With Client Site Starter Templates
How To Work Faster & More Profitably With Client Site Starter TemplatesHow To Work Faster & More Profitably With Client Site Starter Templates
How To Work Faster & More Profitably With Client Site Starter Templates
 
Automated perf optimization - jQuery Conference
Automated perf optimization - jQuery ConferenceAutomated perf optimization - jQuery Conference
Automated perf optimization - jQuery Conference
 
HTML5 tutorials for beginners - Imrokraft
HTML5 tutorials for beginners - ImrokraftHTML5 tutorials for beginners - Imrokraft
HTML5 tutorials for beginners - Imrokraft
 
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
 
Tech talk on Tailwind CSS
Tech talk on Tailwind CSSTech talk on Tailwind CSS
Tech talk on Tailwind CSS
 
Dynamic web
Dynamic webDynamic web
Dynamic web
 
Building WordPress sites with AngularJS and the RESTful plugin JSON API
Building WordPress sites with AngularJS and the RESTful plugin JSON APIBuilding WordPress sites with AngularJS and the RESTful plugin JSON API
Building WordPress sites with AngularJS and the RESTful plugin JSON API
 
WordPress Theme Reviewers Team
WordPress Theme Reviewers TeamWordPress Theme Reviewers Team
WordPress Theme Reviewers Team
 
Why Javascript matters
Why Javascript mattersWhy Javascript matters
Why Javascript matters
 
Using JavaScript Libraries like D3.js with WordPress
Using JavaScript Libraries like D3.js with WordPressUsing JavaScript Libraries like D3.js with WordPress
Using JavaScript Libraries like D3.js with WordPress
 
Word press development for non developers
Word press development for non developers Word press development for non developers
Word press development for non developers
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a Service
 
Webpack and Web Performance Optimization
Webpack and Web Performance OptimizationWebpack and Web Performance Optimization
Webpack and Web Performance Optimization
 
Node.js 101
 Node.js 101 Node.js 101
Node.js 101
 

Similar to Going Multi-Tenant with dotCMS

Design4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to ResponsiveDesign4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
Salem Ghoweri
 

Similar to Going Multi-Tenant with dotCMS (20)

Designing True Cross-Platform Apps
Designing True Cross-Platform AppsDesigning True Cross-Platform Apps
Designing True Cross-Platform Apps
 
Training presentation.pptx
Training presentation.pptxTraining presentation.pptx
Training presentation.pptx
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 
Developing JavaScript Widgets
Developing JavaScript WidgetsDeveloping JavaScript Widgets
Developing JavaScript Widgets
 
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Creating a Reusable Drupal Website for Higher Education - at USG Tech DayCreating a Reusable Drupal Website for Higher Education - at USG Tech Day
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node js
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
 
Sai Sharan_UI_Resume
Sai Sharan_UI_ResumeSai Sharan_UI_Resume
Sai Sharan_UI_Resume
 
Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overview
 
Developer Pitfalls & Strategies for Improving Mobile Web Developer Experience
Developer Pitfalls & Strategies for Improving Mobile Web Developer ExperienceDeveloper Pitfalls & Strategies for Improving Mobile Web Developer Experience
Developer Pitfalls & Strategies for Improving Mobile Web Developer Experience
 
A Step-by-Step Guide to Converting HTML and CSS to WordPress
A Step-by-Step Guide to Converting HTML and CSS to WordPress A Step-by-Step Guide to Converting HTML and CSS to WordPress
A Step-by-Step Guide to Converting HTML and CSS to WordPress
 
20120802 timisoara
20120802 timisoara20120802 timisoara
20120802 timisoara
 
Getting started with CSS frameworks using Zurb foundation
Getting started with CSS frameworks using Zurb foundationGetting started with CSS frameworks using Zurb foundation
Getting started with CSS frameworks using Zurb foundation
 
Fundamentals of Web
Fundamentals of WebFundamentals of Web
Fundamentals of Web
 
CouchDB for Web Applications - Erlang Factory London 2009
CouchDB for Web Applications - Erlang Factory London 2009CouchDB for Web Applications - Erlang Factory London 2009
CouchDB for Web Applications - Erlang Factory London 2009
 
Web Desing.pptx
Web Desing.pptxWeb Desing.pptx
Web Desing.pptx
 
SEF 2014 - Responsive Design in SharePoint 2013
SEF 2014 - Responsive Design in SharePoint 2013SEF 2014 - Responsive Design in SharePoint 2013
SEF 2014 - Responsive Design in SharePoint 2013
 
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to ResponsiveDesign4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
 

More from dotCMS

Building Mobile Apps and Sites in dotCMS
Building Mobile Apps and Sites in dotCMSBuilding Mobile Apps and Sites in dotCMS
Building Mobile Apps and Sites in dotCMS
dotCMS
 
Out ofmemory
Out ofmemoryOut ofmemory
Out ofmemory
dotCMS
 
Categories vs relationships
Categories vs relationshipsCategories vs relationships
Categories vs relationships
dotCMS
 

More from dotCMS (17)

Unleash Your Content: Content-as-a-Service
Unleash Your Content: Content-as-a-ServiceUnleash Your Content: Content-as-a-Service
Unleash Your Content: Content-as-a-Service
 
How Does an Organization Manage Hundreds of Sites?
How Does an Organization Manage Hundreds of Sites?How Does an Organization Manage Hundreds of Sites?
How Does an Organization Manage Hundreds of Sites?
 
SEO
SEO SEO
SEO
 
The Making of a Rockin' Web Team
The Making of a Rockin' Web TeamThe Making of a Rockin' Web Team
The Making of a Rockin' Web Team
 
Justifying IT Spending
Justifying IT SpendingJustifying IT Spending
Justifying IT Spending
 
Aligning Your Web Initiative with Your Business
Aligning Your Web Initiative with Your BusinessAligning Your Web Initiative with Your Business
Aligning Your Web Initiative with Your Business
 
dotCMS Roadmap 2010
dotCMS Roadmap 2010dotCMS Roadmap 2010
dotCMS Roadmap 2010
 
Plugin Overview I and II
Plugin Overview I and IIPlugin Overview I and II
Plugin Overview I and II
 
Migrating to v1.9
Migrating to v1.9Migrating to v1.9
Migrating to v1.9
 
Building Mobile Apps and Sites in dotCMS
Building Mobile Apps and Sites in dotCMSBuilding Mobile Apps and Sites in dotCMS
Building Mobile Apps and Sites in dotCMS
 
Super widget
Super widgetSuper widget
Super widget
 
SEO and search plugins
SEO and search pluginsSEO and search plugins
SEO and search plugins
 
Out ofmemory
Out ofmemoryOut ofmemory
Out ofmemory
 
Host and Permissions in v1.9
Host and Permissions in v1.9 Host and Permissions in v1.9
Host and Permissions in v1.9
 
Forms as Structured Content
Forms as Structured Content Forms as Structured Content
Forms as Structured Content
 
Categories vs relationships
Categories vs relationshipsCategories vs relationships
Categories vs relationships
 
Velocity tips and tricks
Velocity tips and tricksVelocity tips and tricks
Velocity tips and tricks
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Going Multi-Tenant with dotCMS

  • 1. Building a CRAPLOAD of Web Sites in dotCMS
  • 2. OR Creating a Site Building Framework in dotCMS
  • 3.
  • 4. WE ARE CURRENTLY CONVERTING 700 WEB SITES to dotCMS 1.9
  • 5. CONVENTIONS are your friend
  • 6. A connected base framework of HTML, CSS, JavaScript, Velocity, and Containers that provide a solid foundation for all sites.
  • 7. Why Conventions Are Awesome • Keeps your team on the same page • You can go into any project and understand what’s going on, even if you didn’t start it • You can go to edit an existing site and know exactly where to go to make changes • Speedy implementations of CSS, JavaScript, Velocity, and other cool stuff • Enables designers and project managers to implement complex functionality • Ensures quality control
  • 8. How we're using conventions • “Pluggable” pieces • Sharing as much code as possible across hosts • Naming conventions • Folder structure • Browser Support, Graceful Degradation, Progressive Enrichment • jQuery minimalism • Project Stages and Basecamp
  • 10. In 1.9 everything lives self-contained on a host. Because the sites run on the same code base, this means that we would end up with lots of dupli- cate containers, vtls, CSS, and jQuery plugins.
  • 11. Global Host • The host where we distribute all the global pieces of our site building framework. • Host CSS for base layouts, print styles, and mobile styles • Host jQuery plugins and other global JavaScript • Host all containers for velocity powered functionality and HTML • Global content delivery (CDN) • Host files referenced by widgets and containers used across sites
  • 12. Basically, we come back to the age-old principle of being lazy. Do something once, and then reuse it a thousand times.
  • 13. AND NOW AN EXAMPLE
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. CSS GLOBAL HOST reset.css base.css print.css mobile.css ie6-reset.css LOCAL HOST screen.css ie7.css ie6.css
  • 27. reset.css • resets all the annoying default styles that browsers love to add • provides a blank slate to start from • on global host and cached across all of our hosts
  • 28. base.css and screen.css • controls basic layout • hosted globally • @ import the base of your choice for a layout • screen.css provides layer of typographic and graphic styling locally
  • 30.
  • 31. ie6-reset.css • not all browsers, especially older ones, are going to see exactly the same design • providing a layer of content level support by using one stylesheet that provides a simple, usable design • using the same HTML naming conventions makes this really easy
  • 32.
  • 33.
  • 34. mobile.css • User Agent detection • iPhone specific Meta tags • Currently works with iPhone, iPod, iPad (he he) and most other mobile browsers • Fully CSS-powered; no JS
  • 35.
  • 37.
  • 38.
  • 40. Omniture Search • meta tag based indexing controlled by logic in the head container • giant content pull for indexing (site-map.dot) • xml based response • results page widget
  • 41. ehc Components • Distributed across all our sites, tying into our global host. • similar to dotCMS’s Application widget • Versioning by structure. ehc Components v1 widgets, v2, v3 ... v#
  • 42. Watch for more details on our blog.