Category Archives: Entrepreneurship Journal

Entrepreneurship Journal, 5/18/2017


I started doing Facebook ads. So far I’ve spent $52.29 for 21 subscribers for an average of $2.49 per subscriber. My average sale for April was $52.52, and about 8% of my subscribers buy something, so I believe that means a subscriber is worth $4.20 to me ($52.52 * 0.08). This means $2.49 per subscriber makes sense. For every 100 subscribers I buy ($249) I’ll make 8 sales, resulting in $420.16 ($52.52 * 8) of revenue and $171 of profit.

This is all assuming that subscribers who came to me via Facebook ads convert the same as subscribers who came to me in other ways. So far none of these 21 subscribers I’ve bought have bought anything from me.

Revenue for May hasn’t been very good so far. I’ve made just $257.25 in sales so far and it’s already the 18th. At this rate I’ll make less than $500 this month, which would be lame. That $257.25 even includes a sale when somebody accidentally bought the book twice, so it’s really more like $207. I’m reminded of this tweet:

We’ll see how things shake out.


I’m in Detroit right now teaching a 5-day class. It’s going well. (By the way, Chris Cornell died here in Detroit last night. Crazy.) Next week I’m teaching a 3-day class in Amsterdam. Then I’m off for two weeks, then I’m teaching a five-week bootcamp in Detroit. Nothing planned after that yet.

I have some potential work in the pipeline. I taught a one-day class last week and the client was happy and wants to do more classes. This is through a training company so I don’t have much control over the sales process. All I can really do is make suggestions to the training company and then wait. I also have some other prospects but they’re much earlier-stage.


I haven’t done any development work in a long time. The soonest I could possibly do any development work is after July 14th when my bootcamp ends. So I guess I will have gone four and a half months without having written any production code, which is totally crazy to me. I’ve been trying to line up some development work in what little extra time I’ve had but nothing has panned out yet. I don’t expect to have any more time between now and July 14th to find something. It actually seems more likely that I’ll line up some training work before any dev work. I kinda hope I find some dev work though because I have a somewhat long vacation planned for August and it would be nice to have some location-independent work to be able to do during the vacation.

Entrepreneurship Journal, 4/24/2017

I’m going to separate this Entrepreneurship Journal entry, and maybe every entry for a while, into three sections: Product, Training and Development.


I recently came up with a four-step plan for Angular on Rails:

1. 3X opt-ins/mo
2. 2X average sale size
3. 2X traffic
4. 2X average sale size again

I realized later that my plan has a flaw. When I was talking about 3X’ing my opt-ins per month, did I mean 3X the opt-in rate or the absolute number of opt-ins? I think I meant the absolute number of opt-ins, which is problematic. The absolute number of opt-ins could be doubled by simply doubling traffic, which would make the goal of increasing opt-ins kind of irrelevant.

I don’t care that much anymore, anyway. Look what I recently did to my opt-ins:

drip opt ins

You can see that my opt-in rate had been kind of falling for a while and then in the last two weeks it shot back up. I think this is because I added an “ad” on each page for my Free Guide. If you click the ad, it takes you to the home page, where you can opt in.

free guide ad

I also did some certain things to try to 2X my average sale size. Previously, I had three product tiers: $39, $89 and “custom”. My average sale was something like $37. (A lot of my products are bought at a discount with a coupon code. That’s how the average can be less than the cheapest product.) The sales page really steered people toward the $39 product, too, because I felt like the $89 product was out of date and I didn’t really want people to buy it.

Then I refreshed my $89 product and changed the prices to $49, $99 and $250+. I also steered people toward the $99 product. Two times $37 is $74. My thinking is that if most people buy the $99 product, that can get me up to a $74 average.

So that leaves just two steps of my plan:
– 2X traffic
– 2X average sale size again

Doubling traffic is no big mystery. If I write more blog posts, I’ll get more traffic. 2X’ing the average sale size again will be a little trickier but I’ll cross that bridge when I come to it.

But hang on. Something weird got thrown into the mix. My April started off really strong but then I went 10 days without getting a single sale. This made me step back and re-evaluate things. I figured something might be really wrong.

stripe april

Well, I checked some numbers and ran them past some people and it looks like my conversion rates are fine. Here’s what they are:

– Site-wide opt-in rate: 2.45%
– Opt-in rate from my home page: 24.07%
– Sales page to checkout: 6.45%
– Checkout to purchase: 45%
– Sales page to purchase: 2.9%

According to some people I trust, these numbers are fine. They say what I should focus on is traffic.

Now that I look at it, 10 days with no sales isn’t that crazy. In January 2017 I went 11 days with no sales. I had a 7-day stretch in February with no sales. In March I went SIXTEEN days with no sales. So yeah, I think I just need more traffic.


I have two training engagements coming up soon: one week-long class from May 15 to May 19 and a 5-week bootcamp starting June 12. Preparing for those two classes will fill up the majority of my open time between now and June 12. So I’m not really trying to take on any new work between now and then.

I do need some work for after the bootcamp ends, though. Right now I have two concrete training leads in the pipeline.


I haven’t written any production code for a client since the end of February. This is probably the longest I’ve gone without writing code for money since 2009 when I quit my job in Austin and moved back to Michigan. It’s great.

Having said that, I wouldn’t mind picking up another development gig as long as it were the right kind of project. It’s easier to find coding work than training work and at some point before long I’m going to need some money. I’m planning to reach out to people in my network over the next several weeks to see if I can rustle something up.

Entrepreneurship Journal, 4/10/2017

My venture into training work continues to be successful. I’ve completed two classes so far this year and I have three more coming up. I haven’t done any actual development since the end of February and I don’t plan to do any more anytime soon. My training schedule has me fully booked through mid-July. (The prep work is time-consuming.)

My hope/plan/expectation is that from here on out I never take another development gig out of necessity. I might take one because I want to, but my plan is to do enough sales in training and products that I never have to take a development gig just to pay the bills. And I especially don’t want to have to take a shitty development gig just to pay the bills. Luckily it’s been quite a while since I’ve had to do that.

Like I said, I have a fully-booked training schedule through mid-July. After that I’m planning to take a vacation with the family and then after that I don’t know what happens. What would be ideal is if I could get Angular on Rails to the point where it’s making $10K+ a month so I don’t have to worry about lining up any client work. This, of course, has been the whole objective of my now nine-year-long effort to build a successful product business. So far Angular on Rails has worked better than any of my previous tries.

I have some stuff to say about Angular on Rails but I’ll save it for the March 2017 Angular on Rails Income Report.

Entrepreneurship Journal, 12/18/2016

I’ve been taking care of a number of things lately that at one point would have been premature but are no longer premature.

When I first started selling my book I used Gumroad. Gumroad was a fine way to get started but it has a drawback in that it’s impossible (as far as I can tell) to measure conversion rates because the visitor is redirected off your site and onto after they click the purchase link. There’s also the drawback that you can’t control the layout of the Gumroad checkout or anything like that.

So, at the behest of my business coach, I’ve been working on moving from Gumroad to something more controllable. It’s been surprisingly hard.

First I switched to the “Gravity Forms + Stripe” WordPress plugin which seemed to work okay but I later discovered it doesn’t seem to support coupon codes. That’s a deal-breaker for me as my business depends heavily on the use of discounts.

One of the other solutions I tried was WooCommerce, which looked like the de-facto standard for WP e-commerce. I found WooCommerce to be pretty bad. The main problem I had was that after I created my product and indicated that it was a digital product as opposed to something that gets shipped, I went through the checkout process and discovered that all the address fields were still present.

I spent what felt like a very long time trying to get past my WooCommerce frustrations which were compounded by the fact that everything to do with WordPress development is so dumb. In WP, apparently every entity is shoehorned into a “post” type, and so when you edit anything, you get the same fields you get for a post for the most part, which in most cases only makes a very small amount of sense. I could rant about WP forever so I think I’ll just cut myself off right here.

Anyway, the WP e-commerce solution I ended up being pretty happy with is Easy Digital Downloads. Since I use Stripe, I had to pay for an $89 EDD Stripe plugin, but that will probably end up being cheaper than it would have been to use PayPal and pay their fees.

I also re-themed I finally found a WP theme I don’t passionately hate and I think I paid $69 for it.

Next steps include adding some certain addition opt-in offers to the site with the idea being to increase my rate of acquiring new subscribers.

I meet with my business coach again in a few days. I’ll be looking forward to hearing what he thinks I should do next.

Entrepreneurship Journal, 10/27/2016

It’s been about a month since I last wrote.

Two days ago I did a big launch. I came out with a new video product on

It’s always been my intention to create a product ladder for Angular on Rails. Here’s what the product ladder looks like now:

  • Free guide (to getting started with Angular + Rails)
  • Book ($39)
  • Video courses ($199)

The idea is that some visitors will download the free guide, some people who download the free guide will buy the book, and some people who buy the book will also buy the videos.

I launched the video courses on Tuesday at a special price of $99, and for people who have already bought the book, $60. Total revenue since Tuesday for the videos has been $576.

Here’s my month-by-month revenue so far:

August 2016: $868

September 2016: $1053 (18% growth over August)

October 2016 so far: $1364 (30% growth over September)

Total all-time sales is $3285.

I like to contrast these numbers with the fact that Snip never made more than $450/mo. Angular on Rails’ first month of making money was better than Snip’s best month ever!

My goal for November is $2000, which would be about 50% growth over October (or at least 50% growth over what October has earned so far, although I hope and expect I’m not done making sales for October.)

If I grow by 20% a month, I’ll be at $5,000/mo by June 2017 and $10,000/mo by September 2017.

If I grow by 30% a month, I’ll be at $5,000/mo by March 2017 and $10,000/mo by June 2017.

So I think it’s reasonable to shoot for being done with client work (or at least done needing client work) and living 100% off of product income sometime in 2017.

Entrepreneurship Journal, 9/25/2016

I haven’t written in a long time. This is not because nothing has happened but because things haven’t stopped happening long enough for me to take the time to write an update about it.

Last time I wrote, my book sales were at $273 and I had 370 subscribers. Today (exactly two months later) sales are at $1609 and I have 714 subscribers. Not counting the $273 in presales, that $1609 has all happened in the time since 8/30 (less than 30 days ago).

Angular 2.0.0 final just came out, so I’m working on updating my book to cover that version. I told my list it’s coming out Tuesday, partially to give myself a hard deadline.

Entrepreneurship Journal, 7/25/2016

Things continue to go well with Like I said in my last post, I did a book launch on 6/28/2016. Seven people pre-ordered my book (total sales: $273) which I’ll be delivering on September 1st.

At the time I did the launch I had about 300 subscribers to my list and was getting about two new subscribers a day (14 per week). About a week ago I redesigned the homepage for to be optimized for conversion and that week I got 39 subscribers. That’s a 2.79X better than 14/week. There wasn’t a meaningful change in traffic, so that improvement can be pretty safely attributed to the conversion rate.

As of today I have 370 subscribers. I guess in a month I can expect to have (39 * 4.333) + 370 ~= 540 subscribers and in a year I can expect to have at least 2400 subscribers, although I hope and expect that my traffic and conversion rate will go significantly up between now and a year from now.

My planned next steps are:

  • Release the book on September 1st (with announcements to my list beforehand)
  • Promote the book via podcasts, guest posting, and I’m-not-sure-what-else
  • Pre-sell a relatively high-priced course
  • Continue to post new content
  • Expand and improve the book

Entrepreneurship Journal, 6/29/2016

Yesterday I did a book launch. It greatly exceeded my expectations. I’ll tell you about it.

I’ve had the idea for a couple years about writing a book about Angular + Rails. My site is pretty popular and it stands to reason that some of the visitors there might like to read a book on the topic. The reason I didn’t write such a book was because I didn’t want to invest several months in writing the book only to discover that no one wanted to buy it (or too few people). I’ve experienced that sad scenario several times already and I’m not eager to do it yet another time.

I also couldn’t conceive of any other way to make money with This changed at MicroConf in April. Tim Conley suggested to me that I offer paid courses on the site. I have no idea why that didn’t occur to me before. I shared the idea with Brecht Palombo and he suggested that I pre-sell the courses before investing the time in creating them. Good idea.

It took my a while to figure out what to do. The plan I came up with was to start with a book priced at maybe $49, then evolve that book into a $200 course, then evolve that course into a $500 course, then evolve that course into a $1000 course, and so on, keeping each tier in place as I develop the next tier. What I would end up with is what they call a “product ladder”. Customers start with some little free offering, then buy the cheapest thing, then buy a more expensive thing, etc.

Yesterday I opened the book up for presale. I wanted to strike an appropriate balance between “don’t prematurely optimize” and “don’t half-ass it”. I also had a very hard time believing anyone would buy the book, so I found it very difficult to muster the motivation to do anything more than half-ass it. So I pretty much half-assed it.

To my surprise, seven people bought the book. All seven bought the $39 tier meaning my total sales yesterday were $273. That’s nothing compared to the $5,000 or $10,000 book launches I read about, but for someone who has experienced so many utter failures over the years, I’ll gladly accept a $273 launch. I was already happy after just one person bought the book. When the second person bought, I couldn’t believe my luck. Four people had bought by the time I went to bed, and again I was completely satisfied with this number. When I woke up this morning I discovered that three more people had preordered the book yesterday for a total of seven.

A question I’m asking myself now is what are the next steps. Obviously, one of the next steps is to actually write the book and deliver it. Delivery is scheduled for September 1st. I believe I should also keep the blog posts rolling so I can keep my email list warm. (My email list is a little over 300 people now.) At some point I should also create a not-half-assed version of my sales page but I’m not sure where to prioritize that.

Lastly, I’d like to make an observation. It took me 18 months to make my first dollar with Snip, and after that, I never earned more than about $60/month for a very long time. has been around since 2014 (and I’ve been writing various technical blogs forever) but I didn’t decide to turn it into this-is-my-next-full-blown-product-business-attempt until April of this year. So it took me about two and a half months to make my first dollar with, and instead of $30/mo like my first month of Snip revenue, I earned $273 in a day. Time will tell what my monthly revenue will be like from here on out but I think the time it takes to make your first dollar says a lot.

Entrepreneurship Journal, 6/3/2016

In my last update I shared that I was officially embarking on my seventh attempt at a product business. My plan was/is to monetize by offering courses there.

As of April I had about 260 people on my email list, I believe. I developed a few different plans and scrapped each in succession in favor of a better one. Where I landed at one point was this:

  • Put up a sales page for an e-book (that won’t exist yet) called “A Beginner’s Guide to CRUD in Angular and Rails” (or something similarly titled)
  • Perform a two-week launch process culminating in a 48-hour purchase window
  • If enough people buy, write the book and deliver it

In order for this plan to work, I decided I should have about an 80/20 mix of helping/pitching. Because I’m learning Angular as I go, the blog posts I write require a lot of research and exploratory development. So I haven’t had much in the “helping” category to share, although some.

I’m glad I write these posts because articulating this stuff is helping me realize that I could really stand to get more specific about my plans. There’s no reason I can’t decide that my launch sequence will include X “provide value” emails and Y “pitch” emails, and then work backward from those numbers to figure out how many tech posts I need to come up with, and then queue up that many tech posts. That’s a much better idea than what I’ve been doing so far, which is to put out a tech post whenever.

As time passed I noticed a certain problem with the site. One of the site’s main jobs is to be collecting emails for my list. The problem was that I couldn’t figure out an opt-in form that would convert at more than 0.5%. Every time I emailed my list with a new post, a few people would naturally unsubscribe, and so I was losing people at a faster rate than I was gaining them. That’s no way to be.

Since the opt-in problem certainly needs to be solved at some point, and time is just burning while people are not signing up, it probably makes sense to prioritize fixing the opt-in problem first. I had an idea to kill the opt-in popup thing and instead put up a squeeze page for a “learn Angular 2 mini-course” or something. But then something unexpected happened.

I’ve been talking with some training companies about doing some Angular training for them. A couple weeks ago I scheduled a “demo presentation” with a certain training company for June 3rd (today). I figured a good way to prepare would be to go through my presentation with some people the day before. I decided just for shits and giggles to toss up a free webinar in case a couple people might want to sign up. It turned out that 24 people signed up for the webinar, which was way beyond my expectations, especially since my webinar “sales page” was comically bad and lazily done. That also of course means that I added 24 new people to my list. I also learned a lot about my audience from the experience. So I think what I’ll do is perform a webinar, say, every few weeks. I’ll put up a squeeze page for the webinar and collect emails that way, which might fix the opt-in problem. Plus after (or during) the webinar, I can pitch other products to these people.

Entrepreneurship Journal, 4/19/2016

Last time I wrote I said my client had unexpectedly run out of work for me. Fortunately, I did in fact find a new client at MicroConf. I traveled all the way to Vegas only to run into someone I had met in college over ten years ago who now runs a Rails dev agency. What a crazy place the world is.

Another thing that came out of MicroConf was a decision to kill Freelance Launch Kit and focus on as my next product business endeavor. Previously, the only way I could conceive of to monetize was to write an e-book. I talked to Tim Conley at MicroConf and he asked me why I don’t offer courses on the site. I can’t believe I never thought of that.

I shared my traffic figures with a few people (between 4,000 and 5,000 visits a month) and to my surprise, everybody seemed to think that was a lot. I had had no idea if that was a lot or a little.

I also met a couple other people who run technical courses as a business. I’m scheduled to Skype with both of them to compare notes.

My plans for first couple steps were to write two new blog posts to warm my email list back up, then send them another email asking them what they want to learn. I did write those two blog posts and the first one got featured in Ruby Weekly. (My writing has been featured in Ruby Weekly a number of times before as well.)

My next step will be to send that email asking what people want. Before I get too ahead of myself I think I want to find other people who run technical courses and see what they did and in what order. When people ask me for advice I always say, “If you want to be successful at something, find someone who’s already successful at the thing you want to do, and copy what they did.” So I think I’ll take my own advice.

My last product business attempt, Snip, was my sixth attempt. Here goes number seven.