From Wordpress to Octopress

December 24, 2012


I am writing this post about Octopress, and this is my second migration from Wordpress to Octopress. When I moved for the first time it was actually a transition to Jekyll and not Octopress, it was more of a experimentation, I installed it, generated the pages, pushed it and checked, it was all cool but it all seemed a little rough and I didn’t give it enough time to soak into and switched back immediately to WP. But when I came across Octopress, I realized it was a huge improvement on top of jekyll and read few reviews too and it turned out it suits me best for the needs.

The site you are curretly viewing doesn’t need a server to generate html or maintain database. It consist entirely of pre-baked pages, mean what-you-get is what-is-stored, you can fire it up directly in your browser from hard disk, you carry the entire working blog along with you and deploy it with zero effort anywhere, anytime that’s the coolest things about Octopress, it runs your blog on flat files as compared to Wordpess (and million other blogging tools/CMS) which stores you posts/contents in databases.

Now that doesn’t mean Wordpress is not cool, I have used it for quite a long time, but just that I think it’s intended toward a different set of users, and I feel maitaining such a huge CMS with a databse and it’s plugins and keeping them up-to-date is a little too much extra homework for a(my) blog, it just feels unnatural for a simple blog. While with Octopress the fact that I work with my blog like an application, I can work on it, commit it, make a draft and when it’s in presentable form then deploy it with one command, and can tar the entire(working) blog and carry it in my thumb drive and launch it off anywhere and it needs minimum requirement for hosting (just a bare minimum computer running all the time), give a real comfy feeling. Since it’s static there is no native support for comments but disqus rocks!

and while talking of being comfy, there is extra bonus which comes with Octopress, since html is pre-generated and no database is required you can host it for free (free as in freedom and also free as in free beer ;) ) on Github Pages or on Heroku, no bandwidth limit or anything, hurray! and of course you can deploy it if you have your own web hosting,

Goodbye! Wordpress

Goodbye Wordpess

You can use exitwp to extract the posts from your Wordpess blog which would convert your XML to markdown format, which can be used with Octopress directly. You can extract everything apart from comments, if you used disqus or livefyre or some similar service then transferring comments shouldn’t be a problem at all, else you might have to just say good-bye to them.

Setting it up

Let's go back to static


Setting up Octopress is a piece of cake, if you are developer of any sort then it would take not more than 20 mins to get it up and running on your Github. Just run a little rake script and get the job done.

I’ll give a short pathway to get it up and running:

Fork the Octopress from here

git clone git://github.com/imathis/octopress.git octopress

Install ruby(if not already installed) You can use Rbenv or RVM to install ruby, I personally prefer the RVM way

curl -L https://get.rvm.io | bash -s stable --ruby
rvm install 1.9.3
rvm use 1.9.3
rvm rubygems latest

Install dependencies for Octopress

// cd into octopress directory
gem install bundler
bundle install

This would complete the setup process, now you can add new posts with

rake new_post['Post title']

this would generate a markdown file in /source/_posts/Post-title.markdown you can add content to it, and install default theme and generate static html by running

rake install
rake generate

now if you want to push your blog to Github make a repository USERNAME.github.com in your Github account and run

rake setup_github_pages

give the details and run

rake deploy

to push it to your github repository, and open USERNAME.github.com and voila!

CNAME

Not only this, even if you want to use your custom domain for your blog, it’s just two step away.

  • Make a file CNAME in site root, with your domain name as content i.e. mydomain.com
  • Make a A record in your domain settings pointing to Github which is 204.232.175.78 (at the time of writing, check here for latest details).

and one thing which you would start feeling and enjoying just as you start using Octopress is you would have a complete control over your blog, you decide it entirely, how it looks, what it does and which code goes where. It’s based on a very powerful blog engine, Jekyll.

Finally

Here is the final landing: <ul class="reasons">

  • Static pages, no need of PHP server for hosting
  • No database, no hassle of backing it up etc, you blog is with you all the time
  • Posting just became more efficient and enjoyable, fire up the terminal and open your favorite editor and enjoy!
  • HTML files are great for caching
  • Free hosting and unlimited bandwidth
  • Ultimate control over my blog
  • Blogging is just a breeze now. I love you Octopress!