Looking for a remote web / back-end engineer?
You should check out my resume (PDF) and give me a call.

Introducing MObtvse

Today, I would like to introduce you to MObtvse. It’s a fork of Nate Wienert’s Obtvse, a Markdown based blogging system written with Ruby on Rails. Obtvse is itself, a reverse engineering of the Svbtle blogging platform / network.

The notable differences between MObtvse and Obtvse are that:

  • MObvtse uses MongoDB via MongoID
  • MObtvse allows posts to be tagged. Readers can click the tags to see all other posts with the same tag, and Administrators can use the tag cloud to help find specific, or related, posts.
  • MObtvse uses Haml (partially implemented)
  • Responsive CSS layout via the Foundation framework.
  • MObtvse has big plans for the future.

MObtvse doesn’t currently generate static pages, but support for statically generated pages is a top priority. The faster serving helps SEO and allows a single server to handle far greater numbers of readers.

There are a number of planned features like Disqus integration for comments, Mixpanel for stats (it already supports Google Analytics), easy image uploading, and much more.

Reasoning

Why another blogging system?

I know. I know. But, the reasons are pretty simple:

  • I love blogging with Markdown. It has totally changed my perception of blogging.
  • Wordpress is a bloated behemoth that can’t withstand serious load without a really good hosting package, and all the Markdown plugins for it suck in one way or another.
  • Blogging with command line tools like Jekyll and Octopress have serious limitations, frustrations, and complications.

Why a new fork?

I created a totally separate project, instead of working to extend the common Obtvse codebase, because there are a number of changes that I have made, and intend to make, that are far beyond what Nate appears interested in doing with Obtvse, which is fine. I’ll contribute back as I can, but MObtvse is quickly moving to a point where most of the new code simply won’t be compatible with Obtvse’s.

I started with Obtvse because writing something from scratch would have taken too much of my limited time, and Rails’ ecosystem allows me to rapidly introduce many of the features I want without having to code them all from scratch.

Why MongoDB?

Simple, by switching to MongoDB users can now throw an instance of MObtvse up on Heroku and use one of the free MongoDB hosting plans to store their data. These plans generally cap their storage but there are very few blogs out there that would even approach the limits they impose.

Why not stick with Octopress?

I’ve really enjoyed the switch to blogging with Markdown, but Octopress just hasn’t been cutting it for me. I spend almost all my working days staring at terminals, so it’s not that I mind getting down and dirty with the command line, but from the perspective of wanting to write, the process kind-of-sucks:

  • bundle exec rake new_post[“some title”]
  • select and copy the new file path it generates
  • open said file with a text editor (I’ve been using Byword lately).
  • skip the chance to preview what it would look like in the final version because that would require regenerating the entire site which takes forever.
  • add it to git.
  • push that to the server, which will then background the generation of the entire site for me via a git post-receive hook. Most people have to sit around twiddling their thumbs waiting for it to finish generating and then upload via FTP / SCP / Rsync / carrier pigeon.
  • wait a few minutes for the entire site to be regenerated on the server (even when you just upload one post).
  • View the post and hope you don’t spot any typos.

And if you want to write a quick blog post from work? No good way to do it without downloading your entire blogging system to your work computer or install and configure JekyllMail. Even then you can’t make an update. Actually… JekyllMail makes blogging with Octopress way easier. Just send an email, with attached photos and placeholder image tags and you’re all good.*

The YAML data structure embedded in the top of my Markdown posts drives me nuts (Octopress inherited this from Jekyll) even though Marked will auto-filter that out on preview for me. This is just wrong. Markdown’s supposed to be about simplicity and ease of writing. Embedding an incomptable, and manually managed raw data structure at the top of each post instead of a centralized metadata solution that would allow the app to make intelligent decisions about what needs to be regenerated and what doesn’t… UGH!

The problem, of course, is that right now Octopress is one of, if not the most feature-packed Markdown specific blogging platforms there is.

How about looks?

MObtvse will always strive to keep its interface clean, simple, and easy to use. The admin section is fairly close to that of Obtvse with the addition of tag support, responsive css, and modifications to better support mobile devices.

The Reading page currently (May 2012) takes many of its cues from weblog.masukomi.org but I expect that to change in the near future.

The Admin Page

The Admin Page

Creating or Editing a Post

Creating or Editing a Post

Reading a post

Reading a Post

Like what you see?

Go to MObtvse.com for more details, or head directly over to MObtvse’s Github repo and grab (or fork) a copy. MObtvse is all about integrating kick-ass new features, so your pull-requests will be warmly met.


* Footnote: I’m mostly done with a complete refactoring of JekyllMail which fixes some bugs and makes it way more extensible. I just need to test it before releasing it into the wild.