Skip to content
The basis for other spree_essential extensions
Ruby JavaScript
Find file
New pull request
Pull request Compare This branch is 2 commits ahead, 58 commits behind master.
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Spree Essentials Build Status

Spree Essentials is the base for many content related extensions for Spree. It doesn't do much on it's own ;)

Spree Essentials provides other extensions with:

  • An asset-upload interface
  • An easy markdown editor with ajax preview
  • Image picker for embedding uploaded images into markdown editor
  • A common navigation tab ("Content")
  • A shared test_helper.rb

Current essential-aware extensions include:

  • spree_essential_cms: A full featured CMS with pages, contents, images and more
  • spree_essential_blog: A blog complete with archives, categories, tags and related products
  • spree_essential_news: A news system, also complete with archives, tags and related products. (yes it's pretty much the exact same thing as the blog)
  • spree_essential_press: A simple press page for displaying media related content.


If you don't already have an existing Spree site, click here then come back later... You can also read the Spree docs here...

Spree Essentials can be installed by itself by adding the following to your Gemfile:

# Spree 1.0.x
gem 'spree_essentials', '~> 0.4.0.rc2'

# Spree 0.70.x
gem 'spree_essentials', '~> 0.3.3'

# Spree 0.60.x
gem 'spree_essentials', '~> 0.2.3'

This isn't necessary if you're using spree_essentials based extensions. If that's the case, just include the extensions normally:

gem 'spree_essential_cms'
gem 'spree_essential_blog'

Then run:

bundle install

Once that's complete, run the migration generator and migrate your database:

To see your available generators run

rails g

Now run the generators for extensions you wish to install

rails g spree_essentials:install
rails g spree_essentials:cms
rails g spree_essentials:blog

Then migrate your database: rake db:migrate

If that all went smoothly, you should be ready to boot the server with:

rails s

Now login to the admin and click on the 'Content' tab!

Essential Awareness

Spree Essentials is designed to allow other extensions to reside under it's global 'Content' tab in the admin. SpreeEssentialPress is the first of many extensions that can run with or without spree_essentials installed.

Setting up an essential aware extension is easy. In your lib/[extension_name].rb file, add something like this:

module SpreeEssentialPress

    { :label => "Press", :route => :admin_press_index }

  def self.sub_tab
    [:press, { :route => :admin_press_index, :label => '', :match_path => '/press' }]

  def self.independent?
    return true unless defined?(SpreeEssentials)


unless SpreeEssentialPress.independent?
  # register with Spree Essentials and reside under the "Content" tab
  SpreeEssentials.register :press, SpreeEssentialPress 


Spree Essentials is under constant development... Development is being done on OSX with Ruby 1.9.2 and usually the latest version of Spree. (currently 0.70.0)

Please let me know if you find any bugs or have feature requests you'd like to see.


The test suite can be run like so:

git clone git://
cd spree_essentials
bundle install
bundle exec dummier


You can easily use the test/dummy app as a demo of spree_essentials. Just cd to where you develop and run:

git clone git://
cd spree_essentials
mv lib/dummy_hooks/after_migrate.rb.sample lib/dummy_hooks/after_migrate.rb
bundle install
bundle exec dummier
cd test/dummy
rails s

To Do

  • more tests
  • better documentation

Change Log

0.3.3 - 2012/1/20

  • Precompile admin assets in production

0.3.2 - 2011/12/30

  • Safer decorator load path

0.3.1 - 2011/12/13

  • Fix broken markitup editor
  • Rework 'selected' class on content tab

0.3.0 - 2011/12/13

  • Upgrade to Spree 0.70.x
  • Remove spork dependency

0.2.3 - 2012/1/6

  • Removed automatic attachment config with SpreeHeroku [0.60.x]

0.2.2 - 2011/7/22

  • Moved pagination above new image form

0.2.1 - 2011/7/22

  • Added pagination to admin/uploads

0.2.0 - 2011/7/14

  • Depend on Spree 0.60.x and above
  • Remove spree_auth dependency
  • Removed app/controllers/admin/resource_controller.rb in favor of the Spree Default one
  • Updated development gems to most recent versions

....more in


So far it's just me; Spencer Steffen.

If you'd like to help out feel free to fork and send me pull requests!


Copyright (c) 2011 - 2012 Spencer Steffen & Citrus, released under the New BSD License All rights reserved.

Something went wrong with that request. Please try again.