Interview with Tobi Lutke of Shopify

The Interview

What inspired you to create an “offline” theme editor?

I found it tedious to change themes in text areas when I was trying out new Liquid features. I guess you get spoiled by working with Textmate all day. After a while I realized that for simple testing I could just as well create a stand-alone server which mimicks Shopify with static data. An itch became code, code became product. It worked too well not to share it and so we polished and released.

Why care so much about theme development?

Designers are generally turned off by the tools they get from the programmers, who are the nemesis of the designers more often then not. Early on in Shopify’s development we decided that we need designers to be on our side; designers will be our base, as they are often the ones who make the decisions about which product will be used.

The tools we create should be empowering to designers, a similar toolchain as developers are used to these days—like a self-contained localhost environment and Liquid, our powerful but aesthetic template language which gives the designers a lot of freedom.

How did you decide to develop it in Ruby, instead of a “real” (application) programming language?

Ruby is my tool of choice for most programming tasks you throw at me. It ships with a full-fledged web server built in so it's perfect for the task. The database is a static YAML file which is read using the standard Ruby parser, and the zip export uses ZLib, part of the standard library of Ruby once again. It was all there already!

Vision runs on a wide variety of operating systems. How’d you make that work?

Different strategies for different platforms. For Windows, I bundle a small self contained ruby.exe which contains the interpreter as well as the Ruby standard library. It was created using Erik Veenstra’s AllInOneRuby and its launched by a standard windows batch file vision.cmd.

On OS X, we got fancier and created an Vision.app folder Ruby script to launch Vision. Platypus is made for such tasks.

Linux users are left to their own devices but they can usually figure out how to do something meaningful with a vision.rb.

Were there difficulties in achieving this result cross-platform?

I ran into problems with OS X's broken standard Ruby. The ZLib library would create faulty zip files, prominently demonstrated in the screencast cough. I ended up having to use the standard shell ‘zip’ command on the Darwin platform but that works well enough.

The biggest issue was getting the little blue bar, which we inject into all templates, to at least show up on all browsers…

Do you see this approach of self-executing Ruby apps gaining a foothold for other “applications” in the future?

Well, its nothing new. Instiki did this years ago. It's a great way to make applications accessible to a broad audience and because of the great tools by Erik Veenstra its really easy to pull off. Let's hope more people will follow suite.

How long have you been writing Ruby, anyway? And how did you come across Ruby the first time?

Like most people, I came across ruby through my discovery of Rails . I discovered Rails when it was released in August 04 2004.

Was it love at first sight?

It was shellshock at first sight. Everything I saw in the language and framework was leaps and bounds ahead of everything else I knew. After a short while my brain started absorbing Ruby, however, and now there's no way back.

Secretly, were you influenced by the idea that this route would prove what uber-awesome Ruby jockeys you all are? (buzz, buzz, buzz!)

It crossed my mind ;) A company like jaded Pixel makes or breaks by public awareness or … well … buzz. We like to release good tools and people in turn have confidence in us that we can pull off something like Shopify.

Speaking of buzz, how’s the theme contest going? How would you describe the level of interest?

The response to Vision’s release was fantastic. After working on Shopify for such a long time its great to release something "real." There were tons of downloads, mentions all over the blogsphere and the screecast is pushing gigabyte after gigabyte. Liquid, the foundation of our theme system, has seen a lot of checkins with new features which people requested on our forums.

You wouldn’t let Shopify’s launch date slip to me, would you? I promise I won’t tell anyone. Much.

It's tough to stop coming up with awesome features which Shopify "totally has to have." Seriously, features are frozen and Shopify works great as it is right now. We're just polishing now.

The Wrap!

There you have it, folks—straight from the mouth of early Rails adopter and core committer Tobi Lütke.

In case you don't want to wade through the rivers of text, here are the key links again:

  • The link of hour: Vision
  • The man of the hour: Tobi Lütke's blog
  • The company of the hour: jaded Pixel
  • The as-yet-not-launched service of the hour: Shopify
  • The open-source-blogging-package-I-use of the hour: Typo
  • The moist templating language of the hour: Liquid

Software Tobi mentioned:

posted in: articles, rails    |     17 comments