Skip to content
JavaScript Ruby CoffeeScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Kublog is a simple yet complete way to have a Product Blog that integrates with your apps user base. It includes social sharing, atom feeds and moderated comments.

Built for Rails 3.1, Kublog is a complete stack, fully configurable solution.

Currently live for Rutanet on and other products at Innku.


  • Publish posts with the most basic and simple wysiwyg

  • Attach multiple images to your content

  • Share your posts on your Product's Twitter Page and Facebook Fan Page

  • E-mail personalized versions of your posts to all your users

  • Optional background processing with Delayed Job

  • Moderated comments from apps users, apps admins, and visitors

  • Atom feed for main blog and individual post categories

Kublog Basic Usage

Kublog is a mountable Engine that assumes you use the following tools for development:

  • Rails 3.1

  • ActiveRecord

Generate migrations and all the code you'll likely want to customize.

rails generate kublog:install

Copy the migrations to the parent applications

rake kublog:install:migrations

Run the migrations

rake db:migrate

Mount the engine on your routes

mount Kublog::Engine => "/blog(.:format)"

Include the author module under the model that will have access to create posts on the blog:

class User < ActiveRecord::Base
  include Kublog::Author

Configure your blog's basic information on *initializers/kublog.rb*

Kublog.setup do |config|
  config.blog_name = 'Example blog'
  config.blog_description = 'Best blog ever'
  config.default_url_options = {:host => ''}

Kublog uses I18n, the install generator will create the file *locales/kublog/en.yml*, make sure to add its content to your own en.yml file or add the following line on your *application.rb* also include the folders under locales:

config.i18n.load_path += Dir[File.join(Rails.root, 'config', 'locales', '**', '*.{rb,yml}')]

To get the most of Kublog you'll want to **Integrate your Users**, **Add E-mail Notifications** and **Configure your Social Networks**.

Integrate your Users

The install generator will create the file *controllers/kublog/application_controller*.

On this file you will see the definitions of two empty methods *current_user* and *is_admin?*. Since Kublog is an isolated mountable Engine, you *will* need to define this methods, even if you have them on your apps application_controller.

After you finish, it might will look something like this:

def current_user
  @current_user ||= User.find(session[:user_id])

def is_admin?

It's *important* to know that if you're using Devise, you won't need a current_user method. If the model you're using is named something other than user, you can call the controller access method inside of *current_user*.


I recommend you define a to_s method for your Author such as:

def to_s
  "#{} #{self.last_name}"

Invited Author Funcionality

When editing a form, the admin can assign the post to an invited author. If this happens, the mails that are sent when a person comments on the post, are sent to the invited author and the admin that published the post.

Add E-mail Notifications

To add E-mail notifications, include the **Kublog::Notifiable** module into the user class that will be notified.

class User < ActiveRecord::Base
  include Kublog::Notifiable

The E-mail from which they will receive the notification is configured in your *kublog.rb* initializer:

config.author_email "Kublog Test <>"

You may also configure a block to specify that the user receives the notification from the author's E-mail:

config.author_email do |post|

Configure your social Networks

Configuring *Twitter* is pretty easy, you might want to create a twitter app on

You will need to feed Kublog:

  • Consumer Key

  • Consumer Secret

  • Oauth Token

  • Oauth Secret

Sample twitter configuration on initializers/kublog.rb

config.twitter do |twitter|
  twitter.consumer_key = 'your-consumer-key'
  twitter.consumer_secret = 'your-consumer-secret'
  twitter.oauth_token = 'your-oauth-token'
  twitter.oauth_token_secret = 'your-consumer-secret'

Configuring *Facebook* Fan page posts is a little trickier, you will only need the access token for your Fan Page.

Find out how to get it here:

Sample Facebook configuration on initializers/kublog.rb

config.facebook_page_token = 'your-page-token'

What's coming

  • Drafts

  • Captcha for unsigned user notifications

  • Pagination

If you wish to work on this. Fork it and pull request, please =)

Check out the code

Kublog is made to be as simple as possible so you can modify fork it, modify it and reuse it. Please do.

Something went wrong with that request. Please try again.