SurviveJS – Writing a Book in a Lean Way
If someone had told me a couple of years ago I would be a book author in 2016, I would have rolled my eyes. Even though I’ve been blogging for quite a while, writing is a career path I never took seriously.
The current effort started somewhat innocently and has since then been growing steadily. It is something I can be proud of. And best of all it has opened an entire new world to me. The world of authoring.
After years of contracting, I started to feel it’s time for a change. The seeds for the book were sown in early 2015 as I came by a blog post of Christian Alfoni. He had written a little something about Webpack and of course I had to comment with a few corrections.
At the time there wasn’t a lot of material available on the tool so we decided to collaborate on a React/Webpack Cookbook. We put some solutions together and it generated interest.
Based on this I realized there might be a business opportunity here. It seemed like the topic demanded something more elaborate. As a result we approached a well-known publisher with a proposal and a preview chapter. After negotiating for four weeks, we ended up getting a no.
In hindsight that was the best thing that could have happened. It forced me to go through the harder, but also perhaps more rewarding, route of self publishing.
No Means Try Again
If there’s one thing that energizes me, it’s frustration. The opportunity seemed too good to pass. While Christian got busy with some other work, I decided to push ahead with my vision. It was time to do something about the situation.
There are a lot of resources, but I felt something more definite was needed. To get through a jungle, you are going to need a machete. That is what the book effort is about. It is about providing clarity. In this case I cover only a small part of it. Just Webpack, React, and a few related tools. Focus is essential if you want to get anything done.
In order to avoid dealing with VAT MOSS, I chose Leanpub as my publication platform. They take a cut ($0.50 + 10% per sale). After taxes, you get roughly half (one dollar equals fifty euro cents). But it’s still something!
Leanpub supports simple Markdown based authoring flow while allowing you to retain copyright. You will have to take care of aspects, like marketing, yourself. Just having not to worry about the law is a big relief, though. If you get lucky like me, Leanpub will cover your work and you might see it on their homepage every once in a while.
The only gotcha with Leanpub is that they don’t provide direct access to your client data. You can send messages to your clients, but they will operate as a proxy. This is something that can hurt your further endeavours. Personal mailing lists are gold after all.
Given I have an open source background, it felt like a good move to start developing the content in the open. I ended up making the book content available through GitHub. Especially the early months of development were organic as I wanted to just write the book through and publish 1.0.
To measure interest, I gave the Leanpub edition for free early on and began to raise the minimum price as the content became more solid. Even though you could buy the book for free, you could still pay for it if you wanted to. Quite soon it was apparent I should actually charge for the book. Keeping minimum price at zero is one strategy, but given I already gave the content away for free, it felt fair to actually charge something for the work.
To my surprise, the book started to generate interest and initial income. As I wrote at my blog in May (2015), the book was literally being drawn out of me. There was demand so it made sense to continue even if it wasn’t generating a lot yet.
I launched survivejs.com at the end of May (2015) to support marketing of the effort. You can find a large part of the book content there. The site also contains interviews of famous library authors and material that complements the book. There is potential for more, though. Now the site has around 100k pageviews per month and the trend is rising.
Crisis of Faith
The book reached its 1.0 milestone in early July (2015) and that is when I had my crisis of faith. The numbers weren’t simply working and the law wasn’t on my side. I needed to find a better, more sustainable way of working or go back to contracting.
Even though I knew the content was being consumed, readers were happy, and I received feedback and even pull requests, this didn’t help my financial situation. As a result I started thinking about business models.
There’s a delicate balance between open and closed. Having all the content in the open is great because it provides great reach. It also enables external contributions. I feel both of these factors have contributed to the success of the book greatly. The problem is, how to actually gain income out of that?
Traditional publishers take completely different route. They follow a certain process where you follow certain steps from start to finish in a controlled way. Most importantly you get access to full content only after you pay. Due to the way the publishing model works, the overhead can be quite high.
As an author you can expect quite minimal royalty (around 15%), although you may get an advance if you are a good negotiator. In self-publishing approach, royalty can be easily 85% or more depending on the platforms you use. This makes a big difference as you don’t have to sell nearly as much.
Self-publishing approach allows you to focus on niches that wouldn’t make financial sense for the larger entities. You don’t have to aim for a bestseller. Just selling thousand copies at $19.99 each can be nice income. You would have to sell at least four times that amount through the traditional route in order to reach the same result.
Compromise Between Open and Closed
It felt like there could be something that works between open and closed. As a result I decided to develop exclusive content for my supporters. There probably isn’t enough yet, but this changed everything and the crisis resolved itself. Now the book generates enough income to justify further development.
There are other factors in play of course and my solution wasn’t the only possible one. In more permissive legislations you could accept donations or use crowdfunding to support your work. Both of these are rather problematic for a Finn so I had to find other ways.
Crowdfunding allows you to de-risk your effort even before starting it. If you start from scratch, the risk is on you and you’ll have to fund the development yourself. This is the reason why publishers pay advance as it enables authors to focus on their work full time. Writing a book will likely take more time you can possibly imagine and the risk is high. Start small.
Monthly Releases Based on Feedback
Self-publishing approach allows you to move fast. I’ve been releasing new versions of the book during its development. I maintain a monthly release cycle. Early on I published something every week to keep the ball rolling. Now I announce each release through the book blog and go through the major changes there. This supports my marketing efforts and helps me to keep in touch with my audience.
Each release allows me to adjust the book based on feedback. I gain some level of feedback almost daily. That helps me to calibrate my efforts. More importantly it gives me a good idea of topics I should cover in the future. I feel having a close relationship with my readers has helped everyone involved a lot. It also helps you to stay motivated when you know the work you are doing is making a difference.
You could say one of the turning points quality-wise was reached around v1.5. That is when Jesús Rodríguez Rodríguez decided to start helping with the editing effort. Being in a similar situation himself he wanted to see me succeed. I simply can’t thank him enough.
Reviewing with Jesús
Jesús’ feedback helped to improve the structure of the book further and make my writing style more approachable. The early versions of the book were useful only if you knew something about the topic already. I feel his feedback made the book accessible to a larger amount of people.
We ended up reviewing chapters together. Traditionally you pass the content for an editor, get the edits to think about, and then integrate them. We skipped this step altogether. Instead, we discussed through the issues together and just fixed them straight away. This was a very effective way of working.
Given I’m not a native, I tend to make my share of grammar mistakes. I’ve improved during since I started, but it’s not possible to catch every possible problem yourself. Even though my readers have contributed a fair share of fixes, employing a copy editor or two isn’t a bad idea.
I ended up using a couple through Fiverr and it was quite helpful. Their work helps you to fix systematic errors in your writing and therefore avoid them in the future. Well worth the investment.
Working with the Community
Given a lot the book content is out there in the open, I get plenty of comments. This is simply due to the fact that the content reaches a lot of people. Often the comments help me understand what I should explain in greater detail. The great challenge about writing a book like this is that it will attract people with different skill levels. You will have to adapt your writing accordingly.
Sometimes I get direct feedback through email. The GitHub issue tracker of the project has been invaluable. So far I’ve solved over 250 issues with the community. Over thirty people have contributed to the content directly through pull requests. You can literally send fixes to the book as you see fit. The it’s up to me to review and accept the changes.
It is also possible to reach me through the book chat. A small yet active community (around 200 people) has formed there and we tend to have constructive conversations related to the topic over there.
All of this helps in its own way. The better I’m at listening my community, the better I can serve it. This contributes to the quality of the work. It might not be as structured or professional as a traditional approach, but it has been one of the highlights for me.
Keeping Up with the Technology
One of the challenges in writing about a topic like this is that whatever you write tends to become obsolete quite fast. This is the reason why I believe you simply cannot write a conventional book about the topic without making a disservice for yourself and your readers.
I treat the book effort as a continuum rather than a fixed project these days. It’s something that grows and develops as time goes by. I feel this is an important part of my value proposal for my readers. It’s a living effort that evolves alongside the technology it covers.
Sometimes this has meant I’ve had to implement small bits of technology myself. webpack-merge is a good example of this. As I wrote the book, I realized a better way to organize Webpack configuration is needed and wrote a tool to solve the problem.
I’ve also helped Tobias Koppers, Webpack author, with his project a little bit. I cleaned up the project issue tracker and help to maintain it. Contributing back to projects that enable your business is a good idea.
I run regular interviews through it and release occasional content to support the book. It’s a good way to experiment with ideas before pushing them to a book format and I think I’ll be doing a lot more of that in the future. At times I have contributed guest posts to other sites.
I know I could have been more aggressive in my marketing efforts but there’s only so much you can do. If someone is looking for a React book, I’m fairly sure they’ll find mine. That’s enough for now. I don’t see any need for investing yet. I can, however, figure out better ways to serve the community so that it can reward me in return.
React Indie Bundle
Reaching out to people is always difficult unless you get incredibly lucky with aggregators such as Hacker News or Reddit. One way to work against this problem is to pool together resources and do a bigger push at once.
It is more of a red herring. I actually want people to buy the digital edition. But I don’t mind offering a physical snapshot for those that truly want it. Developing one forced me to sharpen the content a lot and push mistakes to minimum. Quality-wise this was a nice move.
I published the work through CreateSpace. It makes it possible to publish through Amazon and other popular channels easily. They’ll take a cut, but at least it’s simple. I am still experimenting with this and only time will tell whether the physical version will sell or not.
Writing books is hard. Writing your first book is harder. It is even harder if you use a self publishing approach. Getting work out there is easy. The hard part is making all parts of the equation work so that it actually generates income and opportunities. Even though I’ve experienced a modicum of success with my effort, I know there is still a lot of work ahead of me.
There’s a conflict between the nature of technology and publishing. Technology keeps changing whereas publishing tends to be treated as something more static. Thankfully it is possible to challenge these notions using modern publishing approaches. Rather than writing something alone, you can actually write with your audience and build a community around your work. This model has worked well for me.
I hope you enjoy the book. It has shown me that taking a lean approach to writing books can work. As a little known author agility is your greatest asset.