Skip to content

ShinyCMS is an open-source CMS built in Ruby on Rails, with support for themes, plugins, and cloud hosting. (There is also a Perl version: www.github.com/denny/ShinyCMS)

License

Notifications You must be signed in to change notification settings

denny/ShinyCMS-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ShinyCMS

ShinyCMS is an open-source content management system, intended for use by web designers and web developers. Page layouts are defined by templates (built by a front-end developer or provided by a theme), while content admins can only edit specific text and images on each page (via a simple and easy-to-use admin interface) - protecting page layouts from accidental edits.

This version of ShinyCMS is built in Ruby on Rails, and has support for cloud hosting (Heroku, AWS, etc).

Features

Current features

  • User accounts and administration
    • ACL-based authorisation system for admins (powered by Pundit)
    • Uses reCAPTCHA to block registration by bots
  • Web interface for site settings
    • Change most site settings from within the CMS admin area
    • Easily enable or disable CMS features (e.g. new user registrations)
    • Decide which settings to allow site users to override (e.g. theme)
  • Pages and Page Sections
    • Site admins can add as many pages and (nested) sections as they like
    • Pages have defined content areas which can be edited by admins
    • Page layout is controlled by Page Templates (can be provided by a theme or custom-built)
    • Dynamically generated menus
  • Inserts (re-usable content fragments that can be pulled into any template)
  • News section
  • Blog
  • Comments (currently enabled on blog posts and news posts)
    • Fully nested, so you can easily see who is replying to who at any level
    • Email notifications
    • Uses reCAPTCHA to block comments from bots
    • Uses Akismet to flag potential spam comments for moderation
      • Spam comment moderation sends 'spam'/'not spam' training data to Akismet
  • Tags (currently enabled on blog posts and news posts, ready to add to any content type)
  • Likes or up/down votes on posts, comments, etc
  • Built-in web stats (powered by Ahoy) and email stats (powered by Ahoy::Email)
  • Charts and dashboards for viewing stats (powered by Blazer)
    • Ready for use, but currently without demo data
  • Support for themes (on the main site - not, currently, for the CMS admin area)
    • One theme included
  • All emails use MJML templates, producing reliably cross-platform HTML emails

Planned features

  • Generic form handlers [in progress - nearly done]
    • 'email contact page to site owner', etc
  • Newsletters (HTML mailshots) [in progress]
  • User profile pages [in progress]
    • With content such as recent comments, recent posts, etc
  • Access control groups
    • Can be used to control access to file downloads and secure whole pages, but also to show/hide individual pieces of page content
  • Payment handling plugins
    • Options include recurring subscriptions to access control groups (AKA paid membership)
  • Online shop
  • Event listings
  • Forums
  • Polls

(See the developer documentation for more detailed information on features in progress and to-do)

Installation and configuration

If you want to set up a website using ShinyCMS, please read the Getting Started guide.

Demo site

Theme templates and sample data for a demo site are provided, so you can try all of the CMS features without doing any set-up work.

System dependencies

  • A webserver - I use rails s locally, and deploy to Heroku
  • A database - for now this assumes Postgres
  • An email server or service - anything that ActionMailer supports

Services

External services are mostly optional. If you add config settings for them (in ENV, .env*, or Heroku config vars) then they will be enabled, otherwise either those features will be disabled or a fallback will take their place.

Ruby and Rails versions

ShinyCMS requires Rails 6 (which in turn requires Ruby 2.5 or later), and generally uses the most recent stable release of both Ruby and Rails (currently Ruby 2.7.1 and Rails 6.0.3).

It has been tested on every release of Rails 6 so far, and with most versions of Ruby from 2.5.8 onwards (view recent test results for ruby 2.5.8, 2.6.6, and 2.7.1).

There are currently no plans to add support for Rails 5 or older Ruby versions.

Contributing

If you're interested in contributing to ShinyCMS, please start by reading the developer documentation.

Code of Conduct

This project has a Code of Conduct, which is intended to make using ShinyCMS, or contributing to it, a harassment-free experience for everybody involved - regardless of who they are and what they do or don't know.

Please read and follow the code of conduct - thank you.

Copyright and Licensing

ShinyCMS is copyright 2009-2020 Denny de la Haye - https://denny.me

ShinyCMS is free software; you can redistribute it and/or modify it under the terms of the GPL (version 2 or later). There are copies of both v2 and v3 of the GPL in docs/Licensing, or you can read them online: https://opensource.org/licenses/gpl-2.0 / https://opensource.org/licenses/gpl-3.0

ShinyCMS includes code from other open source and free software projects, which have their own licensing terms; please read the licensing docs for more details.

Current Status

CircleCI Travis CI Codecov

Code Climate maintainability Code Climate maintainability CodeBeat (code quality)

Dependabot Security

RubyDocs Inline Documentation

GitHub code size GitHub repo size GitHub