So the question I get the most often about this blog is, “How do you manage to post consistently every day in the wee hours of the morning?” The answer to that requires a bit more context for how I run The Daily Thought. (cue the “man behind the curtain” music…)

Here's what it looks like for a post to get from my head to your RSS reader. (Warning, this gets a bit geeky.)

  1. I write a post in TextMate, my favorite editor for the Mac. I use the built-in blogging bundle. That provides all sorts of nice macros for writing using the Markdown syntax, and for publishing posts.

  2. When I'm done with the post, I'll preview it in TextMate, and then publish it via XMLRPC to admin.thedailythought.com, which is a private site that I developed using Ruby on Rails, hosted on Heroku. In order to get it to accept published posts from the TextMate blogging bundle, I implemented it to masquerade as an XMLRPC blog endpoint, using a custom library I wrote for the purpose, xmlrpc-endpoint.

  3. A post enters my admin tool in draft mode. At that point, I go in, preview it with the final thedailythought.com formatting, add tags, and mark it as “ready”. I can see all the posts I have in the queue at any given time, and I can drag-and-drop reorder them to help control what flows out to you when. I typically have 1 - 10 posts ready to go. I don't write them months or even weeks in advance, but I do get nervous when I'm sitting right around zero posts in the queue, don't want to miss a day!

  4. Every night, a program behind-the-scenes runs, it looks for the next post that's ready to go, and it publishes that post via XMLRPC to The Daily Thought. It then sends me an email if there are less than 5 items remaining in the queue to remind me to write more blog posts.

  5. The Daily Thought itself is a blog hosted on Squarespace with a slightly modified stock template. The RSS feed is delivered using Google's FeedbBurner.

So there you have it. End-to-end, a picture of TDT.