CMS – The Agency Model

CMS_Levels of Abstraction_1_1
Level 0

Over the past 15 years or so we have seen several levels of abstraction develop in the evolution of tools for the web. At this point, there are WYSIWYG website builders that model the page and it’s high level elements and allow building of entire websites. Among these site builders are SquareSpace, Weebly, and several others. There are also other tools such as Joomla, Drupal and other CMS schemes that solve more flexible problems.
However, as far as I can determine, none of these CMS schemes to date solve what I am calling here, for lack of a better name, “The Agency Problem”.

There is a natural extension to the abstraction that we have thus far reached that does solve this “Agency Problem”. It occurs to me that this problem is of sufficient generality that it deserves consideration as the next level of abstraction for CMS systems to solve. In this paper, I’ll present my take on the levels of abstraction in the technology of building websites and present a scheme which solves “The Agency Problem”.

Levels of Abstraction

Level 0 – HTML Web Forms

Level 0
Level 0

When HTML was defined, it seemed obvious to add a level of abstraction which mapped some data values by name to the rendering of the page, that is, the fields. So this level zero of data abstraction is built into HTML itself.

Level 1 – The Blog, Forums, Galleries, etc.

Level 1
Level 1

Shortly after HTML was being used extensively, it seemed clear that the model of Build Locally then Upload method of building web sites was not ideal for everyone, and so several fixed function models of abstraction were developed. Among these are the Blogs, Forums, Photo Galleries, etc. Even Facebook is only a modern and very complex version of this level 1 abstraction. What Facebook allows the user to do in building their “Site” is essentially a modified “Blog” with a fixed set of functions and page interactions.

Level 1 abstractions are characterized by a “fixed function for all users” model of website creation. So all WordPress blogs look alike, in their data model if not in their Eye Candy presentation, or theme. There are many types of Forum Software, but each provides a fixed abstraction that maps it’s database model to the HTML presentation.

Level 2 – Website Builders

Level 2
Level 2

Level 2 is exemplified by modern website builders, such as Squarespace, Weebly, and many others. I found it odd that I could not easily find the wiki web page for website builders. The Web Development Wiki page talks about the deep languages and standards and not about the level of abstraction. It seems that all the technologies mentioned on that page are stuck at level 0 of the abstraction.

In this level of abstraction, the items from Level 1, as well as the “Web Page” are provided as elements from which to build a site. In this case a Web Page is defined as a string of text and image elements. Sometimes these website builders provide more complex abstractions from level 1 such as Blogs, Forums, Galleries, and so forth. This is essentially a more complicated level 1 abstraction.

It is unreasonable to solve “The Agency Problem” with a website builder providing a Level 2 Abstraction Model.

The Agency Problem

What is the Agency Problem? Consider this example. Consider an organization that represents a number of Artists, Novelists, Videographers, Poets, and Musicians. In short, an Agency. Each of these classes of artists have their own distinct needs to present their work, and to find clients. Call all of these Artists to distinguish them from the Clients which are the folks that the Artists are seeking to present their talents. If The Agency seeks to provide a web framework that allows the Artists to present their work to prospective clients then each type of Artist needs a distinct model of website with unique features to present their work. However they also have many things in common.

  • Each artist wants to have a unique theme, with appropriate branding of the agency, to show off their unique style and flavor. A Heavy Metal band and a poet are not going to be happy with the same theme for their pages.
  • All the artists need some way to contact them, a calendar to show their schedule of upcoming tour, gigs, signings  or presentation dates, and so forth.
  • They each need a BIO and a personal Gallery that allows clients to obtain images for press use.

The Agency will want to control the Branding across all the themes used by the Artists so that the presence of the Agency is evident on all the pages. Also, the Agency desires to make the site uniform, and searchable so that clients can easily find the artist in the genre that they  desire. All musicians’ sites will have common features, and so for Photographers, and Novelists, and Poets, and so forth. Sample tracks, and video clips for Musicians, Image Galleries for Photographers, etc. etc.

Consider also, that the Agency does not want to make all the website changes for it’s 100’s or 1000’s of Artists. It wants to provide a site so the artists themselves, or contractors that they hire separately, update their websites. This means, in practice, that folks with assistant level expertise and no deep knowledge of website design must be able to update blog entries, add photos to galleries, and update tour dates / schedules. DeviantArt is an example of an Agency site in many ways. However, the software to build such a site is not readily available to other agencies.

Website Builders Do Not Scale

Oh they scale fine to do what they are intended for, but they do not scale to build an Agency. So all of this could be built using Template Pages and a modern website builder such as Squarespace. If a website builder is used such as Squarespace, even with template pages, supporting 100’s or 1000’s of Artists requires a large staff of web designers since the goals of Agency Branding and uniformity must be supported by the Agency building the web pages.

Website Back-End Solutions Are Expensive

Or an Agency could be purpose built using php, or J2ee or some other technology. In the case of using a back-end technology such as php, J2ee, python, etc., then a purpose-build abstraction level 1 CMS must be built that satisfies the Agency requirements of uniformity, branding etc. And that supports a security model that allows Artists or Artist assistants or contractors to update the artist website without allowing access to any other artist’s sites or compromising the entire site. Complicated Website CMS’s are under constant attack and the security integrity of any complex site is difficult to maintain. Any purpose built CMS is a very difficult and expensive proposition to consider.

Build an Agency Using a 2rd Generation CMS

I have invented a label for CMSs like Drupal and Joomla. Let’s call them 2nd Generation CMSs. Single purpose we might call 1st generation: WordPress, phpForums, and so forth. The problem with using 2nd Generation CMSs, as we will see, is that they do not provide a multi-page template abstraction. And there are other issues with the user / security model.

The Next Level of Abstraction

Level 3
Level 3

It occurs to me that another level of abstraction is required to solve the Agency Problem in a scalable and maintainable way.

The Agency website builder works as follows:

  1. Page Sets are defined by the Agency, the maintainer of the site. A Page Set is a collection of any number of linked pages with a set of fixed elements and a set of variable elements. The variable elements are linked to database tables so that their content can vary. Elements are either unity – one instance – or multiple – many instances are allowed. This allows BIO pages and Blog entries, or Photo galleries to be modeled. This definition phase does not require detailed knowledge of HTML or databases. The CMS hides much of that requirement. However, definition of new themes probably requires knowledge of HTML CSS- style sheets.
  2. Each page may have fixed elements, such as Agency Branding, and variable elements such as banner images and text elements, as well as text, video, image and audio content. Of course video and audio content may be hosted on other sites and embedded on the Agency site.
  3. The Themes provided by the agency are flexible so that banner images, footers, menus, etc. can be changed for the entire page set easily and to allow the Artist to customize them within a set of constraints controlled by the Agency.
  4. Any desired number of page sets can be defined, so that any number of Artist types can be supported.
  5. The security model is flexible and secure. The agency can control the entire site and define page sets. Artists are given access to their own site exclusively. Each artist site can have one or more logins so that contractors can assist Artist building their sites.
  6. The individual artists are given one or more page sets as templates and one or more themes to choose from and then they, or their contractors, can build the content for their site.
  7. The actual creation of content on an artists website is as easy as making a WordPress blog entry, or posting photos to Flickr or Smugmug. No detailed knowledge of HTML or CSS is required and the links among the pages, and entries within the Artist site whether in a gallery or blog or calendar are automatic.
  8. Intra-site links, within a single artist site, are easily made and are robust across theme, and page set definition changes. So if the Agency changes the page set definition to add pages or features, the links in an artist’s site are preserved across the change. This means that links are robust among artist content added to blog entries, photos, videos, song samples, the BIO and any other pages that are part of an artist’s site. The Agency is responsible for any links that reach out of the artist’s site to the Agency high level site. These are part of the Page Set definition and not the Artist content.

Another Example – A Building Contractor

A few years ago I ran across a contractor who wanted to build a website for his customers. This site has many of the same problems as the Agency Model. The issue with this type of problem is that the small business owner does not have the money or time to spend building a site from scratch. He has very limited funds to support the effort to build the site. However there are thousands of small businesses that need sites like this:

  1. Each customer’s site is private to them and the Contractor [Small Business Owner]. There are no “Social Features”. The idea is to have a portal for private communication / documentation of the on-going process between the Client and the Contractor [ or lawyer or whoever the business owner is – call them Contractor here.].
  2. Each Contractor business model will require different set of “modules” or place holders for content. The pages for each client may be complex however. Contractor posts PDFs, or images of the proposed work, as well as contracts and ongoing questions. The client comments and posts other images etc. In this case there are no BIO pages and no public access to any of the pages of the client. Only Contractor and Client can see any of the pages.
  3. In the case of the Contractor model, the clients don’t change the theme of their pages. This is required in the Agency model since the pages contain both Agency and Artist branding. In the Contractor model the clients do not require any branding.
  4. The customer can write comments, and post images, and rate things. But we can’t ask them to use anything even as complex as “WordPress”. So think of their contribution as if they were using Facebook or Flickr, nothing more complex than that.
  5. Setting up a new client must be dead-simple for the contractor. The page structure for a client is pre-defined as part of the site as far as the contractor knows. While this must be simple and flexible – the contractor may need to add things in the future for specific clients or for all clients in the future – it must not require any detailed web  knowledge on the part of the contractor.
  6. To set up the site, the contractor hires a “Web Contractor” [WC] that builds the site from, for example, a 2nd Generation CMS with some modules. This can’t take very long, because the Contractor does not have a lot of time / money to spend on this. In a few hours we better get a site up and running on a Drupal / Joomla hosting service, for example. This includes branding a theme for the contractor.
  7. Security must just work out of the box. No detailed mucking about in the security set up pages of Drupal to make a new user. Simple registration and moderation of comments / new user registration by Contractor is all that the Contractor can deal with.
  8. So in the Contractor model there are three types of users: Admins with site configuration authority who manage the CMS; Editors, the Contractor and her assistants, that manage the client base and produce content for each client; The Clients who review and comment / post images about the content produced by the Contractor.

The Contractor model is a slight change to the Agency Model but requires the same two things:

  1. Simple, Robust User Management with Security. Security options include completely private [Contractor Model] or completely public [ Agency Model].
  2. Multi-page templates that are pre-built and locked down. In the Agency model the artists add lots of content. In the Contractor model they probably only comment and post pictures. In the Contractor model the Contractor as well as the Client creates content on the Client site.

Abstraction Level 3 Supported Now?

It is not clear whether Joomla, Drupal and other complex CMS’s support the AL3 Model of abstraction. I will be doing research on forums and other sites to determine if they support the model.


After studying Joomla and Drupal – the front runners in the complex CMS game – I come to the following conclusions:

Neither platform can solve the problem. The primary missing feature is the creation of the abstraction of a collection of pages as a template. Neither of the platforms have that OOTB or with any plugin.

The problem of user management is apparently solved in both platforms. Drupal and Joomla both have User Management built in. Joomla has Communication Builder among other social plugins. CB can build a fully social site that allows connections among users, or not.

It is not clear however that the requirements of the Contractor model are provided. Drupal / Joomla now only admit to two roles – Admin and User. Editor who can easily create users with appropriate security is not modeled apparently.  The User Models of both platforms assume “Classes of Users” that have broad access to the site. These platforms apparently require the creation of a whole new “Class” of users for each client to solve the problem. There is no default setting for each user to say all new content is “Private to me and Administrators / Editors” where the Contractor would be an Editor with site-wide access. Also as the Contractor adds new content in a Client site, the content must automatically be tagged as private to that Client and not accessible to any other clients.

Part of the acknowledged problem with Drupal is that there are so many community provided modules [add-ons] that it takes a long time to choose a set of add-ons to build the site you need.

I found a WYSIWYG theme builder for Drupal. But it modifies an existing theme, and does nothing for the problem of multi-page templates.

– ww