Repository is archived
No commit activity in last 3 years
No release in over 3 years
Quadro Content Management System
 Project Readme

Quadro CMS

This project rocks and uses MIT-LICENSE.

No Longer Maintained

Quadro is a CMS written for Rails developers. It works as an engine and provides the standard functionality to start a website or a blog from the scratch.

With Quadro you have the following features:

  • Create pages.
  • Draft and published pages status.
  • Create your own templates.
  • Make any area on your template editable.
  • Auto-generated sitemap.xml.
  • Manual sitemap.xml ping to search engines (production only).
  • Upload images for each page.
  • Use summernote as inline content editor.
  • Slider with slick carousel.
  • Gallery with lightbox2.
  • Integrate any Bootstrap 3 template.
  • Google Maps integration with gmaps.
  • Customized forms.
  • Maintenance mode.
  • SEO friendly urls and meta tags.
  • Feeds auto generation (rss and atom).
  • Auto-generated robots.txt.
  • Customized HTML static status pages.
  • Basic Open Graph and Twitter Cards support.
  • Youtube and Vimeo video and playlist embed support.

Current stable version

Current stable version.

Gem Version

Code Climate, Hakiri and Travis CI status

Code Climate Test Coverage Security Build Status


In order to start using it, you need to add the gem entry on your Gemfile.

gem "quadro"

Then you need to run your bundler.

bundle install

Now the last step is to run the installer.

rails g quadro:install

Note: for Rails 3.2 use 0.5.x gem version.


It will add a mountable route on your project config/routes.rb.

The default user is and password quadro123.

Using the widget

By default, all templates are written with HAML. In order to use the widget, you need to do it as the following example:

= widget_for :content

It also works with a default HTML block.

= widget_for :content do
  %p Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

The widget_for helper receives a second parameter which is type.

= widget_for :content, type: :html

In this release, the possible options are:

  • html (default)
  • slider
  • gallery
  • map
  • form
  • video

Map widget

Map widget options are:

  • latitude (required)
  • longitude (required)
  • title (optional)
  • static (optional)

Note: static option displays a JPEG graphic map instead of traditional. Default value is false.

Content block will be used for location's pin info window if provided.

= widget_for :address, type: :map, latitude: 13.701291, longitude: -89.224423 do
  %p Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

You also need to set google_maps_api_key in config/initializers/quadro.rb.

Note: to get an API key, please refer to Google Maps official documentaion here.

Form widget

Form widget uses simple_form as form builder. You can specify a form block to define your own fields.

= widget_for :contact, type: :form do |form|
  = form.input :name
  = form.input :email
  = form.input :message, as: :text, input_html: { rows: 3 }
  = form.button :submit

Note: all form submits are saved to database. When logged in you can review each interaction below the form widget.

Video widget

Video widget uses video_info gem as video info fetch client.

= widget_for :video, type: :video, src: ""

You can also set a playlist:

= widget_for :video, type: :video, src: ""

Note: works the same with Vimeo's videos and playlists.

Working with page templates

Every page has a template associated to it, it sets the layout that will be displayed on the browser. There is a default list of available templates by default.

  • blank (full width content)
  • jumbotron (full width content with cover header)
  • sidebar (content with sidebar navigation)
  • demo (an example layout with an example of all available widgets)

You can create your own templates, just add the template files as partials in the following path:


Initializer options

Quadro initializer options are defined at config/initializers/quadro.rb. Here a description for each of them:

  • host (site domain)
  • email (site email)
  • site (site name)
  • layout (sub page list layout, use list or thumbnail)
  • template (page template default)
  • frequency (sitemap.xml default)
  • priority (sitemap.xml default)
  • google_maps_api_key
  • facebook_id (app_id)
  • twitter_username (without @)

Note: as page templates, sub page list layout can be added at:


Maintenance mode

Quadro uses turnout gem for maintenance mode functionality.

To start maintenance mode, run the command bellow:

rake maintenance:start

To finish maintenance mode, run the command bellow:

rake maintenance:end

You can customize the HTML for the maintenance status page at this path:



For internationalization files you should add quadro-i18n gem.

Note: please refer to gem's official project page here for further information

Use it and enjoy it

Now when you log in into Quadro you will find a toolbar fixed at the bottom, to manage your new website or blog.

Now you are ready to get started with Quadro.