A Lean, Mean Blogging Machine for Hackers and Fools.

Go To Admin Logout

Schnitzelpress 0.2.0

Schnitzelpress 0.2.0 is out - time to upgrade your blogs, people! For new users, we've written an all-new Setup Guide. Give it a try!

Upgrading from 0.1.x

Schnitzelpress 0.2.0 introduces some significant changes to how Schnitzelpress operates, so upgrading your existing 0.1.x-powered blog will require a bit of fiddling. The good news is, one of these changes directly relates to the code you're required to push to Heroku or your own server – it's now a whole lot less than it used to be, as we've moved your blog's configuration right into the database!

In fact, we now provide a Schnitzelpress skeleton app that you can use to set up a new blog (or update an existing one).

Step 1: update your blog's host application! The easiest and by far most painless way to do this is to simply replace all of the files in your blog application with the files from the Schnitzelpress 0.2.0 skeleton app. Create a new git commit and push the changes to Heroku (or deploy to your own server). Future upgrades will be easier, we promise!

Step 2: configure the site's owner! The admin_email setting has moved to an environment variable called SCHNITZELPRESS_OWNER. If you're using Heroku, you can set this through heroku config:add SCHNITZELPRESS_OWNER=your@email.com. If you're using your own server, simply add this to your user account's environment, or refer to your web server's documentation for instructions.


  • By popular request (haha), you can now delete posts.
  • The various available rake tasks have been moved to the schnitzelpress command line tool.
  • Most of your blog's configuration is now stored in MongoDB and can be modified from the new “Configuration” page in your the admin panel.
  • Post with dates now use double-digit days and months in their canonical URLs. (Your existing posts will forward to the new canonical URLs automatically.)
  • When logged in as an admin, you will be shown a small admin actions panel in the upper right corner of your browser, allowing you to quickly edit posts, jump to the admin section, or log out.
  • Schnitzelpress now has a light-weight, custom-built asset pipeline that serves all Javascripts and Stylesheets as one single file each, compressed and ready for hardcore caching.
  • When running Schnitzelpress locally (aka: development mode), you can use a simple developer-only login provider to log into your blog for testing purposes.
  • Various visual and performance improvements.

Schnitzelpress 0.2.0 Status Update

So, how about a quick status update on Schnitzelpress 0.2.0? First of all, I'm afraid I'm not going to be able to commit to any release dates; I'd like to get this thing out of the door as soon as possible, but every now and then there's client work that is simply more important. If you're impatient and feeling adventurous, you can always use the latest HEAD from the GitHub repository, of course, but don't come crying to me if stuff breaks!

Now, regarding the new stuff. Next to a pretty significant amount of fixes and performance improvements, Schnitzelpress 0.2.0 will bring two major changes:

Run-time configuration: I would like Schnitzelpress to work like pretty much any other appliance; you don't need to know how it works in order to use it, but if you want to play around and customize it, you're free to pry open the case and go wild. When it comes to a Schnitzelpress blog, opening the case means editing your blog's source code; and changing basic stuff like your blog's title or description certainly doesn't warrant this. Starting in 0.2.0, you will be able to customize these things through your browser.

Theme Support: I want to make it easier to customize the looks of your blog. Even in the currently released version 0.1.1, you can pretty much override any template in your blog's source code (it's an undocumented feature at this point, but it works). However, this is somewhat drastic; I would prefer users to be able to simply choose a new (or customize an existing) design through their blog's configuration screen. Schnitzelpress already uses a clean, semantic HTML5 template that is easily styleable through CSS; version 0.2.0 will build and improve on this and implement themes through CSS stylesheets (and not just pure CSS; you will have the full power of SASS and Schnitzelstyle at your disposal. Sweet!)

So much for now. Expect a release soon-ish-ly-something-something. :)

Schnitzelpress 0.1.1

Hot on the heels of the initial release, I've pushed v0.1.1 of Schnitzelpress. It's just a short list of changes:

  • Additional caching instructions. Specifically, individual posts as well as the post index are now cached client-side for up to a minute, with Rack::Cache keeping copies for a couple of seconds as a counter-measure for high-traffic situations (Hacker News et al).
  • Various little bug fixes.

To update to this version, simply run bundle update within your blog app, commit the changes, and push to Heroku. Enjoy!

Introducing Schnitzelpress

A couple of months ago, I decided it was time for me to return to the glamorous world of blogging. After brief stints with most of the available options (including Markdown-based engines that would render static sites, like the great OctoPress), I decided none of them really worked the way I wanted, so I wrote my own.

It's called Schnitzelpress, and I just tagged version 0.1.0 earlier. That doesn't seem like much, but it's already happily powering this site as well as my personal blog. It's written in Ruby, optimized for Heroku (so much that it goes a long way on a single, free Heroku dyno), uses MongoDB for storage, has a web-based administration interface that uses BrowserID for authentication, and, of course, uses Markdown everywhere.

It will happily embed source code snippets (with beautiful syntax highlighting, of course), images, YouTube videos, SoundCloud tracks and more, all through the magic of oEmbed.

It also comes with a great design template that's all semantic, responsive HTML5, ready for mobile devices (try it on this site; resize your browser window, or browse the site on your smart phone.)

It further features integration with Twitter, Disqus Comments, Google Analytics and the fantastic Gaug.es. Of course it also provides an ATOM feed of your latest posts, with a well-behaved /feed redirect entry point for transparent integration of services like FeedBurner.

Regarding customization, it's HAML and SASS all the way. In fact, Schnitzelpress has also given birth to its own CSS framework called Schnitzelstyle, which I will be blogging about in detail in the near future. Schnitzelstyle, besides being pretty awesome overall, allows you to customize the entire look of your site by setting just a few configuration variables. (Among other things, it will happily adjust all colors on your site to three core colors you provide! It's pretty cool.)

Getting started

Now that the first minor version is released, it's time to write some documentation. I'm totally on it, and trust me, it's not going to assume that everyone out there is a hacker! But for the time being, the best piece of documentation on how to set up your own blog is the Quick Start for Hackers guide. If you're a normal person, you'll probably hate it, but don't worry, I'm not forgetting about you!

So, dear friends, please give Schnitzelpress 0.1.0 a whirl and tell me what you think. If you find any bugs, please add an issue to the Schnitzelpress Issue Tracker on Github.

For updates, follow @schnitzelpress and @hmans (that's me!) on Twitter, and/or subscribe to our ATOM feed!