It's been slightly more than six months since I released the first version of the Riak Handbook. It's been an amazing and incredible ride so far, and it's about time I wrote about how things went from the perspective of publishing, marketing and selling this book all on my own. For this I draw inspiration from Jarrod Drysdale's post on his book Bootstrapping Design and Jesse Storimer's post on the sales of his book Working With Unix Processes. Both books are awesome, by the way, and well worth checking out.

Introduction

Originally I wanted to write a book on NoSQL. I called it "NoSQL Handbook", and I wanted it to cover the better-known NoSQL databases, including Riak, Redis, Cassandra, CouchDB and MongoDB. That was in early 2011. I wrote a chapter on MongoDB, but it didn't feel right to me, so I tried a different approach on the Riak chapter, much more focused on being practical and introducing the user-facing concepts in a streamlined way, building up as the book progresses.

That approach felt much more natural to me, so eventually I started on the Redis chapter and thought I nailed it. I continued working on the Riak chapter afterwards in a similar style. Focusing on practical and interesting usage made it much more approachable to me, so I figured I might just do the same for others. That's not exactly how you build a product, though, I was lucky that so many customers agreed with this approach to writing the book.

The Riak chapter grew and grew, eventually it clocked in at 120 pages and kept growing. My list of things to write about was long, it still is. So I turned to Amy Hoy's 30x500 class, which I was part of last winter, and brought up the idea of first creating a product focused on a single database and to follow up with the bigger book later on.

I started to like the idea, and was encouraged by Amy to try this route. Six months later, going down that route was a success, though there was no guarantee at all it would end up being one.

Let's look at the numbers.

Numbers, Spikes, Cause and Effect

It's weird talking about this, because it involves sales numbers, money and being very open about the selling part of the book. It feels weird because not a lot of people selling products do it. It feels weird because book authors are usually not very open about the royalties they get. I have the most respect for anyone writing a book, make no mistake. But I do want to encourage people to go down the self-publishing route, to build products, to write books, sell and market them.

Since the book went on sale on December 15th 2011, it has sold 746 copies to this very day, grossing in at a total of $22,007.67. 8.9% of that go to my fulfillment provider, leaving a profit of $20,048.99. The total splits into 7 site licenses and the 739 single licenses.

It's hard to express how grateful I am. The number of sales have exceeded my wildest expectations. I thought if I got to $2,000 I would strike off the book as a success. I was insanely happy when I reached 2k, every step afterwards I could hardly believe, eventually reaching an unbelievable milestone of $10,000.

But on the other hand, maybe the sales numbers aren't entirely a coincidence. Here's a graph representing sales in the last six months.

Sales

There's a huge and a smaller spike at the beginning and several smaller spikes along the way. Even though I can't put my finger on all of the smaller spikes (something which I must work on for sure), there are some that can be explained in terms of marketing. Let's put some context on each and see what happened.

Sales

The first spike is the first day of publishing the book. I ended up selling 89 copies on the first day, 52 on the second. The book got posted on HackerNews, and so did an article on building activity feeds with Riak that I published the same day.

The Monday after the release I sent out a newsletter to everyone who signed up for the NoSQL Handbook, some 1400 people. That's the second spike, and it sold some 70 books in total, looking at the first three days of the newsletter going out. Some sales kept trickling in from that newsletter over the following days too.

The next spike is in early February. If you're into NoSQL you'll remember Amazon releasing their new cloud database offering DynamoDB to the public in January. I wrote a long post about it discussing its features and how I thought (still do) it's different from Dynamo, Amazon's original distributed database whose ideas Riak was built on. Interestingly, that article brought quite a few sales of the book.

It's curious because the article is only slightly related to the contents of the book but still builds up enough interest for people to dig deeper into the roots of both Riak and DynamoDB. The book covers a pretty good ground in terms of where Riak comes from and the theories and ideas behind it. In total that article got somewhere around 20,000 views in just a few days.

The last spike is the 1.1 update that I released in late May. I put the book on sale for a week, with a 25% discount and sold quite a few copies in that time.

Marketing

The interesting bit about marketing started not too long before I published the book. Following Amy's suggestion I worked my way up to the launch by publishing three blog posts around Riak. That was also the first time I publicly dropped my intention of publishing a book on Riak, the "Riak Handbook".

It's hard to put numbers on that kind of marketing, but it certainly helps a lot to build up excitement and interest for an upcoming product.

The really hard part about it all was writing the copy for the website. Bringing out the value of the book for someone interested in Riak is hard, really hard. I think I did okay for my first ever try writing what you'd call marketing copy, but only the people who did or didn't buy the book can be the judge of that.

Picking up the spirit of Seth Godin, I'd certainly do more variations on copy and website and do more in-depth testing on a future product instead of leaving it the way it is for too long. I'd also experiment with different ways of underlining the existence of the site license.

The same is true for the newsletter. Writing an email to 1400 people, people that'd see my copy prose and that'd read my email, that was scary. It took me full day to write the text, lay out the email, re-read it multiple times and to finally hit that send button.

It was really, really scary. It felt like being exposed to an unknown public with my pants off. But then again, these people showed interest in what I'm working on by signing up. That's what eventually pushed me over the edge to hit send.

The newsletter helped a lot, so did the initial blog posts and other blog posts following over time. Regularly writing and publishing something related to the book, related to Riak, being helpful on IRC and on the Riak mailing list made a difference too. It got people curious about the book. That's the first step. I need to work on the second step, taking the customer from there.

As a last thought, the best kind of marketing you can get is word of mouth. Great, sincere and personal customer support goes a long way. If someone has a problem, you help them fix it, you help them get along, even if you're not to blame. People will remember that and tell others about it. The same is true for offering sincere apologies to people who are annoyed for valid reasons. With the right kind of support you can turn them into loyal customers. An apology goes a long way.

The Price

When I worked towards a beta of the NoSQL Handbook, I figured I'd start selling it for $12 and the final book for double that amount. After going through Amy's process and reading some of her excellent blog posts on pricing I reconsidered. I bumped up the price for the Riak Handbook alone to $19. After talking to some of my reviewers (who are awesome, thank you guys so much!) I raised it to $25. Giving it some more thought I settled on $29.

Let's look at how that worked out. To make the same amount with $19, I'd have to sell 1158 copies. That's more than 50% more sales I'd have to have made, which feels unlikely to me. Cheaper price doesn't automatically mean more books sold. The value of the book to the customer, to people genuinely interested in learning about Riak, is what really matters. The price follows the value, not what feels right.

Looking back, I had only very few complaints about the price. Given that the book just got a huge update and it's going to get more over the next months, I'm still pondering the price in the longer term.

The Rest

As I said before, it has been amazing experience. Selling something you've built yourself gives you a totally new kind of insight in building a business around products, in developing customer relationships, in providing value to the people to whom it matters the most.

You appreciate every single customer. You get to build a personal relationship with every one of them, should you choose to and should they accept your offer. Compare that with a traditional publisher, where you just get paid by the publisher, and you'll never know who your readers are unless they write a review about your book somewhere.

As a self-publisher, you also get to redefine the process of publishing. You don't have to just ship a finished book and leave it at that like most traditional publishers. For example, the book's recent update clocked in at more than 40 pages of new contents, which existing customers got for free.

The update also included the entire book as a man page. The idea still cracks me up, but just think how useful that is. Customers can search the book quickly and never have to leave the command line they spend so much time in.

Or you can ditch the book format entirely like Steve Klabnik did with his Designing Hypermedia APIs. You get to decide how you want to publish your product, and you get to validate if it's the right approach or not.

I'm still working on pushing the book forwards, adding more contents, updating examples and texts for new Riak releases, improving things as I go along. And yes, that means there's more free updates in the future. You should check out the book if you like that idea :)