Cheaper Than Free

2 years ago Chris asked Tim and I to work with him on a weekend project. Chris creates lots of code demos while writing CSS-Tricks. He was inspired and frustrated by JSFiddle and wanted to do something better.

The weekend project became CodePen and CodePen became my fulltime job.

JSFiddle is still free.

CodePen has a fremium business model. This means most of the application is free except for a few features CodePen PRO users pay for.

Competing against free seems impossible. CodePen's PRO plan ($9/month) is infinitely more expensive than free.

Our ad revenue doesn't support 3 developers. How could we persuade developers to pay for our product when there is a free as in FREE alternative? How could we ever be the cheapest option?

The secret is that developers don't just spend money. They spend their time. Free products do have a cost.

Some math.

CodePen costs $9/month.

The average programmer salary is greater than $100k. At $100k/year, that's $8.3K/month.

Assuming a developer works 160 hours a month (40hrs/week), they are making almost $52 an hour.

$9 (the prices of CodePen) is 17.3% of $52 dollars.

17.3% of an hour is roughly 10 minutes.

I apologize for the terribly American math. It's what I know.

If CodePen can save developers 10 minutes a month more than the free alternatives it's worth the price.

Full time support staff (everyone in the company does support), a great user experience, asset hosting and live updates in multiple devices are a few of the ways that CodePen saves developers time.

CodePen's goal is to be the speediest place to learn and share front end code on the web.

Understanding what our users are paying and expect to receive helps us understand how to become the best value. Free doesn't have to be the cheapest option.

The Spaces Between Work

Music is the space between the notes
— Composer Claude Debussy

The insanity of behaving like a real programmer has afflicted me my entire career. At times I wrap myself up in a project so tightly I see nothing else. Bills go unpaid, moms go uncalled.

Because programming takes zero physical exertion taking on 14 hour days feels ordinary. The pain is obtuse. The weight gain is acute.

My weight rocketed while I kept two jobs

My weight rocketed while I kept two jobs

I'm a runner I know better.

Rest until you’re restless, until you’re bored. Then wait a week, because only then are you ready to resume training.
— Nike Running CoachJay

Recovery days and recovery runs taught me how valuable rest is.

But I used to be a weight lifter. I know growth comes under extreme pain.

The last three or four reps is what makes the muscle grow.
— Arnold Schwarzenegger

I get the most satisfaction from working hard enough to grow my thoughts and then resting long enough to feel eager again.

I love wrapping myself up in a project. I just finished Teams on CodePen. 4 weeks of focus and labor (including weekends) felt exhilarating and exhausting. I learned on the fly and felt empowered.

The next few weeks will be more restful. I'm writing again. I'm gyming and running again. I'm cooking dinner and lunches and seeing friends again.

At CodePen where I manage my own schedule I'll continue this trend because it suits me. I suspect 5 days on 2 days off isn't enough to spur growth, yet isn't enough to feel rested. I'd like to find a happier medium. Maybe 3 weeks on 1 week off.

Enjoy hard work and the joy of rest in between.

Why you may be a Better Programmer as a Founder

Diffusion of Responsibility is a psychological issue where a person is less likely to take responsibility for action or inaction when others are present.

Having worked as a programmer at the Department of Veterans Affairs (332,000 employees), Wufoo (10 employees), Survey Monkey (300+ employees) and CodePen (3 employees) I've noticed a remarkable difference in my creativity and tenacity for solving problems. The more people to depend on the more I depended on people for solutions.

My coworkers were affected in the same way. Knowing we had more people to rely on made us less self reliant.

I’m irked that I’m unable to shake the dependent mindset. In a large group I feel less capable than when I'm working on a project by myself.

When I'm alone, ideas won't stop coming. When I'm in a group I can't help but think about what others may have already done.

This is a side effect of group psychology. It's called Diffusion of Responsibility. Diffusion of Responsibility makes you less likely to take action in a group. It may make you less creative too.

My theory is that you'll become a better programmer if you build a product by yourself because you'll no longer be able to depend on anyone else.

You might not know how creative you can be until you're on your own.