CMS Architecture: The Blueprint

Written By Brad Hunt

Updated May 2019

A poor implementation on top of a great CMS like Sitefinity, still results in a poor product and unhappy clients. Custom web development companies that use Sitefinity should plan their implementations in the same way they might plan for a large custom software development project. Developers need a blueprint to follow so that the end result is a site that is not only functional, but intuitive for content editors and other back-end users. Any custom functionality should complement and extend the platform, rather than work against it.

To facilitate this planning, we at Smooth Fusion create a document we call a “CMS architecture.” In this article we will lay out a list of things to consider when creating a site or application on top of the Sitefinity platform. Additionally, you can download an architecture template and customize it for your own needs.

download-template

Ideally, all of the items in this document should be considered before doing any development work. For teams using agile methodologies or just-in-time processes, it might not be possible to nail down all the details before beginning work, but having a list of known versus to-be-determined items should still provide a framework and some direction for your development efforts.

Sitefinity Platform

1. What version of Sitefinity will be used and which edition?
2. Who will purchase and own the license? Only Sitefinity partners can now purchase the standard edition and ownership of the license cannot be transferred.
3. Is this a new site or upgrade of existing Sitefinity version?

Hosting

1. Where will the production site be hosted?
2. Will it use load balancing?
3. Will the site use Azure local cache or anything similar that would prevent the site from writing files to the file system?
4. Will a CDN be used for documents or media?

• Information on Azure local cache.
• Learn more about load balancing.

Localization

1. Will the site be localized into multiple languages?
2. Is an external localization service needed? If so, do they require content in a specific format for translation? How will content be returned after localization? Word Docs, XLIFF?

• Learn more about localization.
• Learn more about XLIFF files for use with external translation agencies.

Page Templates

1. How many page templates are needed for the site?
2. How are the page templates related to one another?
3. Which pages from the content tree will use which templates?
4. How will templates be organized in the back end for content editors to select them?
5. Are your template names intuitive and descriptive?
6. Is there a sample creative file for each template type?

• Learn more about custom themes and templates.

Layout Widgets

1. Will the site need custom layout widgets?
2. How will the widgets be organized in the tool box sections?
3. Which pages will need the custom layout widget?
4. Are the widget names intuitive and descriptive?

• Learn more about custom layout widgets.

Content Page Information and Copy

For each page of content on the site, consider the following.

1. Page title
2. Page URL
3. Page template
4. Parent page?
5. Title in content tree
6. Show in navigation?
7. Description
8. Index this page?
9. Include in sitemap?
10. Link to creative example?
11. Content of the page

• Learn more about creating a page and page properties.

Content Syncing

1. Will the site use site sync to copy content to production server?
2. What is the destination URL for production?
3. What is the user and password to connect to the production server?

• Learn more about Site Sync.

Search

1. How many search indexes are needed?
2. How will the search scopes be configured for each one? What content will be indexed?
3. Will any custom additional fields be indexed?
4. What will the search results look like?
5. What words are searched?
6. What does the search result screen look like?
7. Where will the search widget be used?

• Learn more about creating search indexes.
• Learn more about customizing search results.
• Learn how to exclude a custom widget from search results.

Navigation

1. Will the site use the navigation widget for user facing navigation?
2. Will the site use content blocks for any part of the navigation?If so, which ones and make sure named logically and documented
3. Consider ADA compliance when creating navigation elements.

• Learn more about the navigation widget.
• Learn more about customizing the navigation widget.

Personalization

1. Will the site use personalization, include info below for each segment? If so,
• Segment name
• Description
• Characteristics that define segment
• Pages that use the segment
• Notes about the usage

• Learn more about personalization.

Sitemap

1. Will the site have an XML sitemap?
2. Will the site have a user-facing sitemap?
3. Consider which content pages should appear in each site map.

• Learn about the XML sitemap generator.

Design

1. Will the site be designed for phone and/or tablet?
2. If so, what design strategy or methodology will be used?
3. Are there sample creative designs for each page?
4. Will any external fonts be used?
• Will they be hosted remotely?
• Will they be included on the site? If so, obtain the font files (TTF, WOFF, etc.)

• Learn more about mobile and responsive design.

Browser Support

1. Which browsers and devices need to be supported and tested?
2. Is there any behaviors that are not functional in certain browsers?

• Learn more about Sitefinity supported browsers.

Documents and Images

1. How will the images be organized in the image library?
2. How will documents be organized in the document library?
3. Will a CDN be used?
4. Will the libraries be setup to save the files to the database or file system?

• Learn more about using a CDN to hold documents and images.

ADA Compliance

1. Does the site need to meet ADA/508/WCAG conformance?
2. If so, what level (A, AA, AAA)
3. How will you test that compliance is met?
4. Will you need to engage human review with assistive devices?

• Learn more about ADA compliance.
• Learn about common accessibility violations.
• Learn more about the WCAG.
• Make sure to consider accessibility in custom widgets.

Built in Modules that will be used

1. Which built in modules will be used?
2. How will each be used?
3. Document details where needed on how the built in widgets will be used to display built in content. E.g. the use of the blog widget to show a blog list and blog details.

• Learn more about activating and deactivating modules.
• Learn more about built in modules.

Built in Modules that can be disabled

1. Which modules can be disabled to improve startup time?

• Learn more about activating and deactivating modules.

Custom Widgets

For each widget consider the following:

1. Widget Name
2. Toolbox location
3. Designer Fields and types
4. Pages the widget can be used on
5. Describe the functionality

• Learn about creating custom widgets.

Custom Dynamic Modules

For each module, consider the following:

1. Module Name
2. Module contains (singular items)
3. Field Identifier
4. Fields on back end page
5. Module Definition
• Field Name
• Data Type
• Required
• Instructional Text
• Limitations

• Learn how to suppress security checks when programmatically adding content to a dynamic module.

Authentication & Authorization

1. Describe how authentication will work?
2. Is SSO required?
3. Tied into any other platforms/systems for sign in?
4. Custom provider needed?
5. What roles will be used?

• Learn more about security and authentication.

Workflows

1. Will workflows be used on the site?
2. OOTB or custom work flows?
3. Which roles are approvers?
4. What is the scope of the workflow?
5. What roles can skip the workflows?

• Learn more about workflows.

Integrations with third-party systems

For each integration, provide relevant details about usage, authentication and how the system is integrated into this site.

1. What is the external system?
2. Describe the functionality it provides?
3. What kind of integration is it? (i.e. What methods of web service: REST, SOAP, WCF, etc.?)
4. Link to documentation of system
5. Authentication and authorization information for the system
6. Sample post and response data

Email Setup

1. How will the site send email? 
2. List the SMTP server information for each environment (dev, state, live)
3. What email features of the CMS need to be setup? E.g. password recovery

• Make sure to configure password recovery before going live.

Classifications and Categories

1. Will the site make use of tags?
2. Will the site make use of categories?
3. Describe how any classifications are used, by which module and expected values.
4. Do any custom modules depend on tags?

• Learn more about taxonomies.

Analytics

1. What analytics code will be used?
2. Is any specific tracking needed? 
3. Will the Sitefinity analytics module be used? If so, make sure to configure Google Analytics ahead of time.

• Learn more about the analytics module.

Site Security

1. Does all or part of the site need to have SSL?
2. Will SSL be forced via CMS or with web.config rewrite/redirect rule?
3. Is encryption needed for sensitive data?

• Learn more about configuring SSL.

301. Redirects

1. If the site is replacing a site, are 301. redirects needed?
2. How will redirects be implemented?
3. Is the additional URL property used or will you have a long list of mapped URLs in the web.config.
4. Document all old and new URLs.

• Learn about additional URLs in Sitefinity.

Performance Optimization

1. Are all of the various caches setup properly?
2. Is debug mode turned off?
3. Are scripts and styled combined?
4. Is content compressed?
5. Can SSL be off loaded?

• Learn more about performance optimization.

Forms

1. Any restrictions?
2. Confirmation option
3. SEnd email notification responses to...
4. For each form field, complete the following:

  • Field Name
  • Field Widget
  • Field Label
  • Field Placeholder
  • Field Required?
  • Required validation message
  • Limitation Type

Exception Handling

1. Will site track exceptions?
2. Method?
3. Notes

Cookie Banner

1. Does the site need a cookie banner?
2. What method will be used to show cookie banner?

Web Security Module

1. Will the Web Security Module be needed?
2. If so, which of the following security policies should be enabled? Provide settings for each:

  • Trusted Sources
  • Public Keys for Web Servers
  • Referrer Information
  • HTTP strict transport security
  • Prevention of styles and scripts sniffing
  • Control of embedding your content
  • Prevention of cross-site scripting attack

• Learn more about web security module.

Smooth Fusion is a custom web and mobile development company and leading Progress Sitefinity CMS Partner. We create functional, usable, secure, and elegant software while striving to make the process painless for our customers.  We offer a set of core services that we’ve adapted and refined for more than 250 clients over our 18 years in business. We’ve completed more than 1800 projects across dozens of industries. To talk to us about your project or review our portfolio, send us a message and one of our project managers will reach out to you quickly.