I've just released version 0.2.0 of Schnitzelpress, my own little Ruby-powered blog engine.
Whenever I tell people about Schnitzelpress, I don't fail to mention that it isn't just a blogging engine, but also an experiment. Let me tell you about my secret mission.
Experiment 1: how do we modernize open-source development?
When it comes to self-hosted open source apps (not just blogs, but they're a fantastic example), it's PHP all over the place. During the last, well, decade, most self-respecting web application developers have moved on from PHP, towards high-level languages like Java, and, of course, scripting languages like Python or my obvious favorite – Ruby.
During all that time, the world of PHP development hasn't seen much noteworthy change. Frameworks and development paradigms may have come and gone, but all in all, the way you develop, deploy and host PHP applications today is more or less the same as it was 10 years ago. 10 years! TEN! In internet terms, that is ancient history, long forgotten and buried under the ashes.
Yet, I fully understand why PHP is still everywhere. It's easy to get started with, and, more importantly, easy to deploy. I love Ruby, but starting out with Ruby can be a pain, and don't get me started on deploying Ruby apps to your own servers. What a nightmare. For PHP, you can get cheap webspace pretty much everywhere; Ruby apps most of the time require setups so heavily customized, there's pretty much no way to not spend a small fortune (or a lot of time) on even basic server setups.
Experiment 2: how do we reclaim the web?
And it's an interesting time, indeed, as lots of people have pretty much given up on self-hosted applications and moved on to hosted services instead. It all started out with WordPress.com offering hosted WordPress blog; now there's a plethora of alternative blogging services like Tumblr or Posterous, and let's not forget social networking services like Twitter and, obviously, Facebook.
All of these sites are making it easier for everybody to publish content to their network, or audience, without having to set up software themselves. At first, this is great; but it's been nagging me, and the nagging is slowly turning into sorrow, and a bit of fear. “If you're not paying for it, you're the product”, remember?
Everyone is worried about privacy implications. Net neutrality is a huge topic. SOPA and ACTA freaked everyone out. The list goes on and on. But see, here's the problem; you may complain about the man, but it is exactly that kind of laziness that gives the man more power.
Know what the real problem is? It's you. Because you are lazy.
You and me, we need to get back into control. We need to become more active, become the producer, not the consumer. We need to own our blogs, our social networks, our email (raise your hand if you're not using Google Mail – see?); at some point even our infrastructure. If the entire web shrinks down to just a few major players because we've become too complacent to set anything up ourselves, we're all fucked proper.
Being a producer, on your own site, with you owning all your data, having access to all the code, needs to become as easy as creating a Twitter account.
So, Schnitzelpress is also an experiment on finding out how modern development technology can help with this.
Experiment 3: how do we open up cloud hosting to normal people?
I firmly believe what is commonly called “the Cloud” heavily factors into this. Forget the obnoxious buzzword slinging; Cloud hosting providers (“Platform as a Service”) are completely changing how you get your application online. Instead of renting a server, having to deal with Linux, Apache and the likes, uploading your code through FTP, you just push your application's code to, for example, Heroku, and it will just work. And scale, too! This matters. Because now you don't need to be a developer and a sysadmin rolled into one to use all this technology.
Ah, Heroku. Intrepid early users of Schnitzelpress lauded how easy it was to set up their blogs on Heroku, but also reminded me that Heroku requires you to leave your credit card information with them once you're using one of their external addons (which, for Schnitzelpress, you need to do in order to get a MongoDB database). Personally, I don't have a problem with that form of account verification, but I can see why other people may object (not having a credit card being one of the more simple reasons). I've added a note about this to the all-new Schnitzelpress Setup Guide, but obviously I'm not psyched.
In addition to that, even though I'm kind of happy with how simple it already is to get a new Schnitzelpress blog started, I want it to become even easier. For example, I still have to make people use Git to push their code to Heroku; for a developer, this is trivial, but remember: not everybody is a developer, and in order to increase overall participation, you can't afford to target developers only. Instead of dancing around with Git, I'd love to just hand users a single file and ask them to upload it to some form on their cloud hosting provider's website. Or set up a Schnitzelpress app template and allow users to clone it directly from the provider's website. Man, that would be cool. Are you listening, Heroku? Engine Yard? CloudControl? Koding?
So, Schnitzelpress is also an experiment about improving the overall cloud hosting situation. First, we need more players in this space as good as Heroku, as obviously we don't want to lock in to that, either. Second, existing providers, including Heroku, need to up their game even more. I've already contacted a number of providers hoping to have a chat about how putting apps into the Cloud could be made even easier for normal people.
Wow. We've already made some progress, but as you can imagine, there's still a long way to go with all these things. I'm hoping for baby steps, one at a time, and will be blogging about my progress here and on schnitzelpress.org.
Leave a comment, or follow me on Twitter.