I send a post to Tumblr. Go through my monotonous routine of resyncing Feedburner in order for Google Reader to pick up the changes. This time, nothing happens.
I check my Tumblr RSS feed, no update. This isn't the first time it has happened — but honestly, I'm fed up. RSS is important to me. People may state that RSS is dead and that Twitter is the way to go. While I do get a lot of my news through Twitter, RSS is still my trusty source.
To have my site hindered in the source which I value highly doesn't sit well with me. Armed with only an iPad, the Logitech Ultrathin Keyboard Case, Textastic, and iSSH — I knew it was time to move on.
I pull up all the sites that I needed to reference in order to test out my three blog-engine contenders:
While I am pretty proficient with Wordpress and creating custom loops and themes (as I use it professionally), I didn't want to go that route as my goal for the site was that of simplicity.
I always knew my stay at Tumblr would be temporary. I originally wanted to start out as cheap as possible with Gridwriter and build up from there; hence choosing Tumblr. But since I do have some sort of income from this site thanks to Carbon Ads, I figured I can use that modest amount of money on a server.
In the meantime, I check my Tumblr RSS feed. Nada.
I set up Octopress, which is a Ruby-based blogging engine which generates a static webpage. While Ruby isn't my strongest in terms of programming know-how, with writers, developers, and designers like Matt Gemmell using it, I figured what the 'hey'?
With Octopress running, I sit down at that point and start outlining how migration would occur. I read the documentation, play around with themes, and posts some test posts.
I check my Tumblr RSS feed again — nada.
Time for the next test. I was able to delete my Linode server and reinstall it in a matter of a couple minutes (amazing for anybody who is experimenting and want a clean server for each test).
I set up Second Crack — the blogging engine created by Instapaper developer, Marco Arment. This was my favorite to win out of the three because of its PHP nature — my specialty.
Once up, I play around by posting a few posts and getting the gist of it while reading the documentation.
I didn't even bother looking at my Tumblr RSS feed this hour.
I delete my Ubuntu server again and reinstall it — this time I install Pelican.
Pelican is a simple Python blogging engine based off the Dropbox blogging engine, [Calepin][http://calepin.co]. While it is a lot smaller than the two others, Pelican is just as powerful and as versatile.
Once set up, I go through the standard routine again. Post some test posts, play around with the theme, read the whole documentation.
Just for shits and giggles, I check out my Tumblr RSS feed to see if it updated. Nothing.
I decided to also send an email to Tumblr support in order to notify them of what is going on.
Hour: Five - And then there were two...
At this point, I have eliminated Octopress from the race. While it does seem the most mature of the three at this point, my relative n00b-ness with Ruby didn't leave me with total comfort. So the finalists were Second Crack and Pelican.
I decide to start the import process to bring my posts over from Tumblr. Both Second Crack and Pelican have their own similar, but different headers that each post has in order to provide metadata and posting status. On top of that, both of these engines support Markdown and automatic posting via Dropbox.
Oh, and if you were wondering — no RSS update.
I have made my decision. The new blogging engine is...
As much as I like Second Crack and PHP, Pelican offered one simple feature to make everything worth while. I can define a custom folder structure within the slug section of the Markdown header for each post. Meaning:
Slug: a/b/c/post-title will place the HTML file in
While that seems like a small feature, it is the most important as it enables me to maintain my permalink structure from my Tumblr posts. Tumblr uses a unique permalink structure:
post/-randomnumber-/slug. That random number is automatically and randomly generated with no regards to date and time. Heading into this project, I knew that would be the biggest hurdle for me.
The only slight downside is that with the way I set up Pelican, I always need to define my folder structure within each slug. With the help of Byword/Writing Kit and TextExpander, I can easily use a TextExpander snippet to write out the folder structure in the slug using:
%Y/%m/%d/ — which translates to
Year(4)/Month(2)/Date(2). Then I can fill out the slug for the post.
Just to put the final nail on the coffin, Tumblr decides to email me back at that point stating that they will only address my issue if the RSS delays for over a day.
Building the site entirely through my iPad was a wonderful experience. It showed me more of the capabilities that I can do while armed with only an iPad. With iSSH being a universal application, when I needed to stretch my limbs while building the site, I easily logged into to my Linode server and continued tweaking through my iPhone. It was the epitome of a mobile work environment.
The import process, taking place on my MacBook Air using nvALT and Keyboard Maestro, took a lot longer than I thought2. However, I was able to import most of Gridwriter to this server. The rest of the older posts will be added as time goes by.
This also brings up an important point. If freedom of choice and permalink integrity is important to you, then you might want to think twice about Tumblr. The aforementioned permalink structure that Tumblr uses can prove to be troublesome when migrating. For me, I'm lucky I made the change now before writing an incredible amount of posts. While it was a burden going through each post and add the permalink structure to the post, it could have been worse.
I also did a lot of experimenting with transitioning the existing RSS readers to the new RSS feed. I didn't want to make a move to benefit RSS readers that resulted in a major inconvenience by having them re-add the feed. Instead, the only minor inconvenience was that the subscribers to my feed were treated with a bomb of 'new' posts.
By far the hardest part of this whole transition was the DNS switch. While I didn't predict this to be difficult as I have set up, configured, and switched over many domain names in my life — this one proved to be problematic. Problematic to the point where the site was pretty much down for a whole day. I don't want to go through too much details as I don't want to necessarily point fingers with the services I use — let's just say one service was more aggressive while the other was very passive. But thankfully everything is switched over now.
With all the administration part said and done, writing using Byword/Writing Kit and Pelican is a wonderful experience. It feels like driving a manual transmission car vs. an automatic transmission car. I have full control of everything in terms of the production of this site all while being as simple as possible. I can literally tear this server down and have it back up in a matter of minutes with Pelican configured and everything — and thats not through a backup. Like manual transmission, Pelican or any other similar blogging engine may not be everybody's cup of tea and would rather not have to worry about server upkeep and the like. But for me, it feels heavenly.
So what about Tumblr?
Don't get me wrong, I still love Tumblr besides their RSS and DNS inadequacies. It's a great community and a wonderful resource of cool, sometimes weird, things. Having said that, I still plan on using Tumblr — but more for my personal stuff. Stuff where RSS updates aren't important. Stuff where permalink structure won't matter. There are a lot of things that I would like to share that don't really fit the realm of Gridwriter, and Tumblr fits the bill perfectly. While I won't repost the actual posts I write to Tumblr, I do plan on doing a daily "digest", if you will, just linking to what I posted on that day. A lot of my audience is from Tumblr, and I don't want to exclude them at all.
For those interested, the address for that Tumblr site will now be
rrawb.tumblr.com. Once again, thank you for reading and for your patience with the transition.
UPDATE: Couldn't stand the default Tumblr url and my domain name finally pointed over (a day and a half later).
Tumblr URL: robrt.net