May 3, 2012

How I built Hopper in a week, without internet

I built the minimum viable product for Hopper. In a week. With no internet.

"But why," you say, "when you could just use the internet?!"

Well, yes. I could have. However, I deliberately chose not to. We spend so much of our lives convinced just how important the internet is. We need it to navigate, to find food, to share our lives and consume others’.

So I wanted to try an experiment: build a web app that relies upon the internet in every facet of its existence without using the internet.

I chose to build Hopper during a week-long vacation on Singer Island. I worked in the evenings on the darkened balcony of my hotel room. Light from a small reading lamp lazily floated through the curtains behind me.

I was disconnected. Without the noise of instant messengers, tweets, emails, nor the beckoning delight of social news and entertaining distractions available to me, I was completely focused on building Hopper.

A week prior to that first line of code, I was planning the project. I knew I was going to build it without internet and had to make some decisions. What tools would I need? What documentation?

Being without internet forces you to focus on the essentials. With the vastness of its offerings and near interminable variety of choices, it’s all too easy to get caught up in trying this, that, and the other thing. You lose focus on the point: what is absolutely necessary for me to get this done? Knowing I was going to be without internet drove me to make quick, decisive choices.

I downloaded the scant few libraries I would need to survive.

A few days in and the project was coming along great. Most of the components were either completed or at least had a skeleton to build upon.

And then I hit a roadblock: I hadn’t foreseen the need for one small but pivotal library. “Crap,” I said aloud, “this is a problem.”

I pulled out my phone to research my options. I quickly found a two hundred line library that covered my needs—but I had no way to transfer it from my phone to my laptop. So, I buckled down and copied it off my phone, manually.

Thirty minutes later, I had a carbon copy of the library in my project. Better yet, I now had an understanding of the library—I knew exactly how the algorithm worked because I was forced to read it as I rewrote it. Had I been connected to the internet, I wouldn’t have given two thoughts to downloading it and dropping it into the project, sight nearly unseen, let alone understood.

The internet is a tool, and like any tool, it can be abused. We use it at inappropriate times or when can get by without it, without a second thought. Thanks to its multi-purpose nature, it slips into the many crevices of our lives without much notice.

I took notice and chose to do away with it during what many would consider an appropriate or, even, necessary time to use it. I wanted to prove it was not only possible and doable, but a successful, viable, and repeatable activity.

Hopper, today, has over 10,000 users and 70,000 pastes. I continue to regularly disconnect completely while doing development and design. I’d consider that successful, viable, and repeatable—wouldn’t you?

You should follow me on Twitter here.

Joshua Gross is web designer and developer, and principal of Planetary based in Brooklyn, NY.