Skip to content
Generic blog engine we use for our blog style websites. Use at own risk
Ruby HTML CoffeeScript JavaScript CSS Shell Groff
Latest commit 35a3901 Apr 6, 2015 Carlos A. Muñiz Moreno Merge pull request #18 from crowdint/chore/table-support
Chore/table support


CI: Build Status

Code Climate: Code Climate

Generic Blog engine, currently in use by and, among others.



gem 'crowdblog'


bundle install

Copy migrations

rake crowdblog:install:migrations

Run them

rake db:migrate


# routes.rb

mount Crowdblog::Engine => '/blog_admin'


Your Rails App should implement the "client facing" pages. Read posts from the Crowdblog::Post model.


The gem includes a very basic Devise implementation. We use it in combination with this gem to authenticate via our Google Apps accounts.

Take a look at this code as an implementation example.

Testing: Use with caution

If you are using it as a 'vanilla' installation, that is, without a lot of customizations, you can use some specs that are included with the gem to make sure your blog behaves properly.

Add this on your spec_helper, right after you require rspec/rails:

require 'crowdblog/rspec'
require 'database_cleaner'

Your are going to need DatabaseCleaner to use truncation strategies for your data. Add these lines to spec_helper.rb:

Rspec.configure do |config|

  config.use_transactional_fixtures = false

  config.before(:suite) do
    DatabaseCleaner.strategy = :truncation

  config.before(:each) do

  config.after(:each) do

Now, create a crowdblog spec:

# spec/integration/crowdblog_spec.rb
require 'spec_helper'

describe "Crowdblog" do
  it_behaves_like "a crowdblog"

And run your specs. It should test Crowdblog properly.

Crowd Interactive is a leading Ruby and Rails consultancy firm based in Mexico currently doing business with startups in the United States. We specialize in building and growing your existing development team, by adding engineers onsite or offsite. We pick our clients carefully, as we only work with companies we believe in. Find out more about us on our website.

Something went wrong with that request. Please try again.