The Scrivito Landscape

This document provides an architectural overview of Scrivito.

Scrivito is in the cloud

Yes, this is a Cloud CMS which means that all you need to develop a website with Ruby on Rails is your laptop computer and, at least occasionally, an internet connection. All your content, whether written text or assets such as images or videos, is stored on Amazon servers (there's more on the architecture). We've chosen Amazon Web Services because they're reliable, fast, and scalable. No database woes, no need to update your server OS, apply security patches, or eliminate bottlenecks. A search engine is also included.

Just focus on your Rails app, provide the controllers and views as you usually would, test it locally, then deploy to the hosting service of your choice (or, if you prefer, to your on-premise equipment). We recommend using Amazon OpsWorks.

The Scrivito SDK

The Scrivito SDK makes your CMS content accessible to your Rails application. The SDK is a gem that provides everything needed for rendering this content. There are, for example, helpers for rendering navigations, or methods for searching and handling the results. The SDK also includes the functionality for editing content in place.

An object-oriented approach

Scrivito lets you organize your content by three categories: pages, widgets, and resources.

A page is just that: a web page to be viewed inside a browser window. A page is composed of widgets. Think of widgets as small pieces of content, a headline, for example, a paragraph of text, or an image gallery. Pages often embed media resources such as images, videos, or PDF documents.

Scrivito is an object-oriented CMS, so pages, widgets, and resources are stored as CMS objects. Object-oriented programming languages usually allow the programmer to define classes that control the behavior of objects. Similarly, Scrivito lets you define CMS object classes that control the structure of your CMS objects. You could, for example, define a CMS object class that represents the homepage of your website, an object class for image galleries, and another one to be used for PDF documents.

When you create a CMS object, e.g. a page, you insert it at a particular location of the object tree. The CMS object tree lets you organize your website content hierarchically for the purpose of structured presentation. However, you're not forced to use a hierarchy – there are several other approaches to interconnecting CMS objects available.

Structuring and editing content

Working copies

All your CMS content is made availabe for editing in what we call working copies. When you create a working copy, it is derived from the most recently published content, similar to a branch in Git. You can have as many of them as your plan permits and use them individually for making minor corrections, or for completely reorganizing and rewriting your content – or anything in between. Your changes never affect what the public sees – until the working copy is published. Of course, working copies can also be deleted. This is ideal for training sessions, for example. Watch the video:

In-place editing

You can edit your content directly on the site delivered by your Rails application. This is made possible by the Scrivito SDK which inserts a panel at the top of every page if you are logged in as an authorized user.

Also, if the content on a page is rendered by means of the helpers provided by the SDK, it can be edited in place. The helpers automatically generate HTML data attributes that are used by JavaScript libraries to make the components of your pages editable. These libraries are part of your Rails application after the SDK has been integrated into it.

In-place editing is one of the core features of Scrivito. You can drag and drop widgets to rearrange them, and copy them to the same or a different page. Navigation items can be ordered as desired using drag and drop, too, and pages can be copied or moved as well.

Individual page and widget types

You can, of course, add your custom page and widget types to your Rails application. There also is a growing public library of widgets available.

The Scrivito SDK provides a Ruby API that also lets you create and modify CMS data structures as well as content. You can, for example, import content you might already have into your Scrivito CMS.

Would you like to create a widget right away?

Which CSS famework to use?

Scrivito is meant to make it as easy as possible for developers and consultants to efficiently create websites. As a CSS framework Twitter Bootstrap is used because it is so widely spread, numerous third-party plugins are built on Bootstrap, and it is supported by many developers. We recommend Bootstrap without hesitation. Scrivito is regularly updated so that it includes the latest features of this framework.

However, Scrivito does not depend on this framework. If you prefer the Zurb Foundation or anything else, you can easily adapt the column widgets and the rest of your website accordingly.

Where to get help

If you are still in doubt whether Scrivito is the right CMS for you or your clients, or if you require pieces of information we haven't thought of, need advice or support, just give us a call at +49 30 74 79 93-0.

What’s next?

How about taking a look at what your pages may be composed of: Browse the Widget Gallery.