What is CAPE?

 18th June 2021 at 11:42pm
Word Count: 2289

CAPE

The way the web works will be increasingly about linking together disparate but specialized services; not providing a single website with all solutions pre-built or hardwired into the site itself. CAPE accepts and tries to embrace this new ecosystem.

Create Anywhere, Publish Everywhere.

_CAPE has two basic parts._

The first part is to API content feeds as Google is to HTML pages: Users search across multiple content sources and are empowered to reuse or display found data in any way they choose. A user defines various content sources, creates a set of search filters, previews the results and saves the final query. Queries are live-updated content feeds, and the results can be removed, remixed, or saved. Saved results can also be re-ordered. Source feeds are not limited and can include public RSS and API data as well as private content created in a Dropbox folder or files from a Jekyll GIT repository.

The second part is CAPE’s use of the search results. Each query has a “saved” and “live” results feed. Currently query result feeds are available in XML, Json, or can be passed through mustache templates for a variety of use-cases.

A blogger or editor can search for tags across multiple sources (including personal ones) and then select the relevant content for a new post with a few clicks. The results can be turned into the actual HTML file or displayed in widget format on any page. Entire websites can be created this way based on a collection of saved queries and a set of display templates.

CAPE Explained

CAPE uses existing and standard formatting, hardware, software, and server technologies. However, the way in which these things are combined is fairly novel.

_This is software, service, and philosophy in one._

As software, CAPE provides the potential for a backend to control all your content feeds — photos from Flickr or Instagram, text docs from Dropbox or Github, spreadsheets from Google Drive, even content from your inventory management system, basically anything that has an API, RSS feed, or otherwise publishes to the web (cloud) somehow can be found, captured, and reused.

Service-wise CAPE provides the option for linking together all your other services. Pick the existing products, softwares, services, etc. that already manage something — workflow tools, photo feeds, etc. — and then use what you are already familiar with to create the content for your website or even print. Instead of being a content management system, CAPE is a content curation and delivery service. (To clarify what “services” are: CMSs have modules or plugins, iOS and Android have apps, the Web has Services … (For more on this, [“There is a service for that”](https://github.com/sundaysenergy/www.sundaysenergy.com/blob/master/pages/static/service_for_that.md) contains references to many existing services providing all kinds of pre-built functionality.))

As a philosophy, CAPE says this: whatever you are already using for content management or creation, please continue to use it. CAPE just wants that content, and will find it, re-format it and deliver it where and how you choose. Mostly this requires thinking about what existing services do the tasks you require, what current jobs create and manage content within your office, and then how those can all be linked together in a sensical, methodical way.

How CAPE can be used / Why CAPE is useful.

CAPE is beneficial for a number of reasons.

That CAPE is a philosophy as much of a software/hardware decision means that it is mutable, iterable, flexible, and more future-proof than many other options. CAPE allows for working fluidly within existing company/organization workflows.

Content creation tasks can be broken up by who actually deals with specific kinds of content. These sub-divided creation tasks can be relegated to tools best and/or only suited to the specific tasks. This makes a creator/editor’s tasks simpler as new workflows, tools, concepts, etc. aren’t necessary. This also means that products and/or services best used for a specific medium can be used making each piece of a site — images, text, HTML, video, CSS, JS, whatever — hosted, served, managed, etc. in the most effective possible way.

Breaking down conceptually the way that the content is created, and then putting it back together at your discretion allows for a number of things traditional CMS driven sites don't easily permit.

1. Ease of Hosting.

Sites built on the CAPE philosophy are simpler, smaller, leaner, and faster to host. The “site” itself is made up of just a few HTML, CSS, JS, and media files as the majority of the content is being drawn in from elsewhere. Also, when new “pages” or “content” are created, they are actually turned into static HTML pages that load quickly and reliably. The entire site (excluding the third party services) can be hosted on a Content Delivery Network. A CDN provides redundancy, speed, and reliability beyond that of regular hosting models for PHP/SQL driven sites.

2. Speed.

CAPE doesn’t power a site like a traditional CMS does, it generates a site. CAPE lives in the background, listening for changes in feeds, services, or other content libraries. When it notices a change or new content CAPE creates any new pages, lists, menus, etc., corresponding to that change, update, or addition.

If you need to load a page, the page is just there for loading, the server doesn’t need to ask a SQL database (or anything else) for said content and have PHP or another script/language compile the content into an HTML file. Also, because of the CDN possibilities, the closest, least-loaded server to a visitor can be used to serve the files, creating another speed gain.

3. Future-Proofness.

CAPE provides a way to link, display, feed, and control content from elsewhere. It does this using simple JS, HTML, CSS, and a collection of processing software snippets. Individually, these are all base-level, foundation technologies for the construction of web-pages. This is unlikely to change in the near future.

Because CAPE doesn't actually manage any content itself, only finds and displays content from elsewhere, your content can be migrated, moved, edited, etc. from whatever is the current best choice. This means that CAPE is able to evolve and flex as technologies advance, improve, or change all together. Being a philosophy more than a software allows for adaptability to be key.

Additional “Why CAPE?” Arguments

_Some of these points reiterate the ones above, but are helpful to explain more specific benefits, or the same benefits in greater detail._

Performance

Content rarely changes. It is a complete waste of resources to load a database and software to handle the processing it into the final html markup. It's difficult to get higher performance than serving static files. Dynamic content can be handled with various third party javascript libraries. Ever get a notice from your host that your website is using too many resources? CPU or Memory issues will be gone forever when your site is statically cached.

Data Protection

Own your content. If you use a blogging service like Tumblr you should have a backup of all your posts. Do you? CAPE accepts various sources of information and stores them in plain text files. They are easy to edit anywhere and can be published everywhere.

Security

Serving static HTML is inherently safe. No server side scripts to get attacked, or abused. Anytime your site is being dynamically generated that software must be updated regularly or you are at risk for security vulnerabilities.

Focus on the content

Interfaces change, content remains. It's too difficult to have layout specific information in the content if you want to display the content in more than one place. The content needs to be **presentation agnostic**. One of the greatest things about the Web is its universality. Web-enabled devices are everywhere. Your content should be accessible from any device. A Content Management System should focus on **managing content** not displaying it.

Responsive Design

The web is responsive by nature. Responsive design gets really difficult to accomplish when there are display rules mixed into the content. As it is impossible to test for all the possibilities we must try to design, code, and content-create for the flexibility and the unknown. By treating content as its own layer, removed from the presentation, we are better able to do this.

Versatility

Desktop applications, web applications, mobile applications. All devices can by sources of content. Why limit yourself to creating content in/on a single place/software focused toward a single device/context.

Don’t Repeat Yourself / Don’t Reinvent the Wheel

Don’t Repeat Yourself (DRY) is a principle of software development aimed at reducing repetition of information — all kinds of information. To reinvent the wheel is to duplicate a basic method that has already been created or optimized by others. CAPE helps website users and managers avoid these pitfalls.

The problems with content management systems

Complexity and Cost

Using Drupal, Wordpress, or most other CMSs requires software to be running on a server to dynamically build each page request. Every time a user visits a page, the server has to build that page first. Every time. Every single time. The software that does this builds each page dynamically, and requires constant updates and has a lot of “moving parts.” The cost to keep all of those parts moving all the time is high. Therefore, the correlating cost to properly host a website like this is much more expensive than that of hosting static site.

Constraints on Content Creation

With a typical CMS, content can only be created via that website. The method for adding content was designed to be like a “desktop” type device that was connected to the internet. This approach was fine when everyone did everything on a desktop computer. But now content creators have all kinds of devices they like to use for content creation. A good example is the iPad. It’s clumsy editing content via a website, and it's a much nicer experience using a native app that is a content editor.

Emphasis on WYSIWYG

WYSIWYG (What you see is what you get) editors are still the common means of editing content in most CMSs. Unfortunately, while they appear useful, they are mostly inefficient and ineffective. WYSIWYG editors created bloated content that contains not just the actual content, but a variety of presentational markup. This both makes the site slower to load and harder to reuse content in other places. It also can interfere with main styles and templates created for display. WYSIWYG works fine on your personal blog, but it isn’t optimal for dynamic, flexible, and responsive websites.

CAPE is more interested in WYSIWYM, or “What You See Is What You Mean.”

From wikipedia:

In a WYSIWYM editor, the user writes the contents in a structured way, marking the content according to its meaning, its significance in the document, leaving its final appearance up to one or more separately WYSIWYG-authored style sheets. For example, in a WYSIWYM document a human being manually marks text as the title of the document, the name of a section, or the name of an author; this would in turn allow one element, such as section headings, to be rendered as large bold text in one style sheet, or as red center justified text in another, without further human intervention. This requires the semantic structure of the document to be decided on before writing it.[‡](http://en.wikipedia.org/wiki/WYSIWYM)

This allows for CAPE sites to have textual, image, video, and whatever other content separated from each other allowing a much easier chance for reuse, repurposing, and optimized management dependent on the content or media type. The content then only displays in the ways you have asked or told it to.

CMSs are Slow and Complicated

You’ll only be as good as the mean of those around you. The Drupal community is home to many semi-developer freelancers. Drupal enables a ton of functionality without being a programmer. Need some added functionality? There is more than likely a module for that. A module that could have been written for a specific job and the maintainer is no longer getting paid to work on it. Wordpress has a similar community and thus a similar set of problems. CAPE avoids this by interfacing with standard, up-kept tools. If a new, better tool comes along (or better maintained tool), it can be swapped in for the old one.

CMSs are good for two main groups

  1. Small scale site builders who can leverage the power of SQL Views, Fields, and the rich module ecosystem (in Drupal, or the general plugin system of Wordpress) but aren't building sites complex enough to land them in “maintenance hell.”
  2. Large organizations with small development teams that need a complex content/user model. Drupal does a good job of content modeling, revisions, localization, and has a decent plugin system. It also is useful in managing a large user base. Wordpress does not easily handle overly complex content models, so should be avoided here anyway. Some other CMSs besides Drupal can handle the complex side of things as well.

Glossary

  • API: Application Programming Interface
  • CAPE: Create Anywhere, Publish Everywhere
  • CDN: Content Delivery Network
  • CMS: Content Management System
  • CSS: Cascading Style Sheets (contains layout and design instructions)
  • HTML: HyperText Markup Language (the basic structural code of web pages)
  • JS: Javascript
  • JQuery: A javascript library of pre-built functions to help simplify and extend basic behaviors for the web.
  • WYSIWYG: What you see is what you get
  • WYSIWYM: What you see is what you mean

Bjørnpaedia

Sentences, Paragraphs and More on Sustainability, Open Source, Design, and how Everything is Connected in general.