Story of a Side Project, Part 2

Getting a site, getting a sale, thinking about scale

(This is the second in a series of 3 posts about my 2015 side project, CamelCalculators.com. This was a site I built and operated to rent TI-84 graphing calculators to college students. Part 1 is here.)


The initial rush of a new idea is a great feeling for me, but it’s important to channel that energy into productivity, not daydreaming. It’s easy to spend weeks coding an idea before even showing it to the world. With this project, I did the opposite. I wanted to see if I could validate the idea without writing any code at all.

Customers before code

Launching even a small project requires making many decisions. The good part is, you can always change your mind later and no one will notice. For this experiment, I had to act fast to capitalize on seasonal demand. Here’s some of the quick decisions I made:

  • Name — CamelCalculators.com. I wanted “calculators” in the name, and I liked the sound.
  • Platform — I chose Squarespace, even though they don’t support rental businesses. If a customer kept their calculator, I wouldn’t be able to charge them a replacement fee. This was a tough call. I decided that the potential cost of a lost calculator was less than the certain cost of spending weeks building a site from scratch. And I generally give people the benefit of the doubt.
  • Pricing — Customers could rent a calculator for 1, 3, or 5 months. A 3 month rental was $40, about 1/3 the price of buying it retail. It turned out to be my most popular option.
  • Marketing — I set up an Adwords campaign, laser-focused on keywords like “rent TI-84.” I couldn’t afford to spend marketing dollars on people who were just kicking the tires.
  • Design — Squarespace provided me with a great template, and I uploaded some photos I took in the park one Saturday morning.
First shipment, with my trademark handwritten sticky note

CamelCalculators.com went live, along with my first Adwords campaign, on January 27th, 2015. My first order happened 24 hours later. Just like that, I turned $10 in Adwords into a $40 sale.

Unfortunately, I was also out of inventory.

Buy, rent, repeat

My operation was on hold until I could purchase more calculators. Amazon was the first place I looked, but I ended up using eBay as my primary source. I found eBay sellers take more pictures and ship faster than those on Amazon.

Each time I rented a calculator, I would buy another to keep my inventory up. Most of my purchases were between $65 and $70. This rhythm of “rent one, buy one” continued through February.

By March 5th, I had made 14 sales. I built out a quick balance sheet to assess the results of my experiment. My sales so far were $621, with $169 spent on Adwords, $75 spent on shipping, and ~$22 in Stripe fees.

I considered it a success.

However, I had to begin accounting for the cost of my time. At this point, my operations were mostly manual. A spreadsheet kept track of my due dates. I bought return shipping using the USPS website (painful!). And I personally sent return reminder emails. Managing it with 14 calculators was doable, but I couldn’t keep up if I scaled to 30, 50, or 100.

It was time for me to build a site that matched the needs of a rental business.

Building a site

I turned off my Squarespace site, put sales on hold, and gave myself a month to re-build the site in Ruby on Rails. I needed to focus on coding, and time spent fulfilling orders or going to the post office was just a distraction.

I carried over my “keep it simple” attitude to the site rebuild, and kept the same site design. Most of my time was spent on the backend.

Using EasyPost, Stripe, and Mandrill, I made my fulfillment process nearly automatic. Purchasing shipping and notifying the user took one click. Return reminder emails were sent automatically via cron jobs. And finally, I could charge users if they decided to keep the calculator instead of sending it back (after a grace period, of course).

I re-launched the website on April 7th, just a couple days past my deadline.

The excitement wears off, the business wears on

As the months rolled on, I continued to build up my inventory and fulfill orders. Compared to the initial craziness and excitement of building the site, this phase was somewhat boring. But I really enjoyed it.

It was satisfying to observe the inefficient points in the process, and then write code to save myself time. For example, I originally sent the return reminder emails manually, to ensure a customer wouldn’t get an email if they had already put the calculator in the mail. But using EasyPost’s API, I was able to build a cron job that would run each morning and only send the return reminder under the right conditions. No involvement from me necessary.

A handful of little improvements and tweaks like that added up to a huge increase in efficiency. I was cruising along.

As December rolled around, I updated my balance sheet and took stock of my progress. My total sales were $2900, with $1100 spent on Adwords, $600 on shipping (both sending and returning), and $95 in Stripe fees.

It was nice to see I was still making a profit, but I found myself at a crossroads. The business was running casually on the side, but I needed to make a commitment in order to scale it up. I went home for Christmas, and began to make a plan for 2016.


In the third and final post, I’ll talk about my thought process for scaling the business and recap the lessons learned.

Update: Part 3 is here.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.