It’s been a bit over a month since I launched my first ebook, Client Oriented WordPress Development, and I’d like to take some time to recap the experience in a bit more detail. Overall the project was a huge learning experience. There were a number of things I’ve taken to heart and will keep in mind should I return down the path some time in the (distant) future.
My lofty goal of some day writing a book began about four years ago. I knew I wanted to write a book about WordPress, but I wasn’t sure where to take it. I’m intimidated by the other authors who are already published and know so much more than me. It sat on my ‘someday’ list since then, from time to time cropping up either while thinking about what project to work on or in conversations with family or friends. To make a longer story short, inspiration struck the first week of this year.
When I get ideas I tend to dive in head first if it’s something I really want to pursue. I see it as both a blessing and a curse because there have been times when I thought I had a great idea only to drop everything I was doing to spend time on it and wake up one day realizing it wasn’t cut out to be what I thought it was. This book was no exception to that rule. The evening the topic hit me I talked about it with my wife, had a domain registered, a book title chosen, and a draft outline within the first hour or two. What resulted was four months of sporadic writing sessions, coding spells, bouts with inspiration, and periods of angst behind the idea in general. I’d like to give it all some context.
Writing process
The longest pieces I’ve written have been published here on Monday By Noon, and one of the first things I realized was how different writing something of fuller length would be. I have a very (what I would call) silly way of writing. Take this article for instance. I wrote the title first, then the intro. So far so good. Then I started outlining, but after the first headline my thought process somehow diverted to focusing on the software I used to write the book so I started writing that section. After a paragraph I returned to the outline, but because of the section I just wrote I restructured what I had so far, even though it was only two headlines and a single section of copy. From there I arbitrarily added three more sections and then swung back to the topmost bullet point.
When I write it feels somewhat like chaos that seemingly at random combines into what I publish. It works with the format of Monday By Noon: a possibly long (relative to other blogs) article on a semi-refined topic that doesn’t need to be fully comprehensive or even completely proofread. An edit is just a minute away, and readers don’t usually mind glossing over a spelling error here or there.
Lesson One: My writing process stinks when writing a book.
I spent the first couple weeks writing chapters as I would blog posts. My main outline changed a number of times and that habit carried through until the final draft. It seemed haphazard but I couldn’t help it. Chapter content overlapped like crazy because I had this ingrained desire to make sure nothing felt randomly included. I couldn’t grasp that the material was covered in the last chapter, it doesn’t need to be refreshed in this one. I would periodically review the progress I made, attempt to remove any repetitiveness, and continue on track. There were two or three times throughout the process of writing the book where I revamped the table of contents quite significantly, which caused a lot of grief in wondering whether I had completely lost direction or not.
Lesson Two: Planning is sincerely important.
Retaining inspiration
By far the most difficult thing about writing the book was somehow making sure it got done. I’m a terrible procrastinator and as such I often give myself arbitrary deadlines for various tasks I’ve got. I’ve come to realize that even if a due date isn’t founded by some event taking place I’ll still feel a pressure to get it done. I gave myself a hard deadline of three months to write the book. I expended the deadline to four months for two reasons:
- I’d also need to take care of the book cover and the site
- My birthday is in early April, so that’s the deadline
There were a ton of variables that somehow needed to align in order to satisfy this groundless deadline as this project was to take place in 100% of my free time without taking away from time with my pregnant wife and our personal obligations. Writing took place in chunks. Lots of tiny chunks of just an hour or two with the occasional weekend day where I’d put in a full eight hours. Working that way is not the most gratifying thing, but unfortunately it’s usually the only way to get something done.
Lesson Three: Thirty minutes work is thirty minutes closer to completion.
Remaining inspired to work on the book and see it through was truly a roller coaster. The interesting part was that it had little to do with the writing, it had to do with everything else. Writing sessions often felt productive and fruitful. It was the cover design and site design that was a drain to my momentum. I’ve lost track of the particulars surrounding the hours of lost work that resulted in absolutely nothing constructive concerning the necessary design elements for the book. It was those times where the wind came completely out of my sails and I didn’t really feel like meeting the impending deadline looming over my head. At those times I’d close Fireworks and get back to writing, I wouldn’t return to anything design related that day.
Progress is very sporadic when you work anywhere from thirty minutes to three hours at a time. In fact I found myself writing in very strange places, not usual for me. I’d bring my computer and write for an hour before my soccer games, I’d write for half an hour before heading into the office, I’d work on the cover or the site before my wife woke up on the weekend. To help keep things going I made a fairly detailed journal of the entire writing process. I wanted to see what kind of time I was spending on the project and how it correlated to something I could quantify. One factor I kept track of was time spent in relation to the word count.
Naturally the bulk of the work involved writing, so keeping track of hours put in and the number of words that came out seemed like a semi-appropriate gauge for my purposes. With the graph sitting in front of me it’s plain to see that I pretty much avoided the project entirely for a couple weeks in February. After getting over my melodrama I got back into it and cranked out the first draft in time to get it to proof readers for a couple of weeks. Upon receiving their awesome feedback I had another writing sprint in late March to give things a bit more cohesiveness and the last plateau was primarily site development. It’s very interesting for me to look back at the initial weeks of the project and not be surprised that my efforts were sluggish. Not only was I trying to get in a new habit of writing bit by bit, I was spending a lot of time away from the computer planning out what it was I wanted to do and how I wanted to do it.
Lesson Four: Don’t be so quick to give up. Stick it out.
Technical Details
I really enjoy thinking about how a system can be put together, especially something I haven’t built before. This was one of those cases. Not only had I not written a book before, but I had a few ideas for the site itself that I wanted to include in the overall “package”. In addition to the unknown of writing long form, I also had to figure out how to implement what I had planned in my head.
Where the writing took place
I’ve got to be honest in saying one of the keystone moments of my committing to writing the book was reading about the technical details of converting an ebook to the various formats required for ubiquitous support. PDF, ePub, Kindle, HTML, XML, what’s the best way to make the best of that situation? I did a bit of research and a lot of asking around.
More often than not, those I spoke to wrote their ebooks in a text editor and had a series of scripts they’d run to generate the desired format. From the sound of it there were many quirks, lots of outliers, tons of trial & error, and even more research to get what they were looking for. That didn’t sound like a ton of fun for me, so I started poking around. I’ve never written long form before, but I figured that there must be something out there to ease the pain of the process a bit. It only took me a few minutes to find what I was looking for: Scrivener. Scrivener is:
… a powerful content-generation tool for writers that allows you to concentrate on composing and structuring long and difficult documents. While it gives you complete control of the formatting, its focus is on helping you get to the end of that awkward first draft.
The first screencast I saw of Scrivener was it’s Compile feature which made it very straightforward to convert your ebook into the various target formats I had in my sights. It seemed like a very comprehensive solution to a problem that was plaguing many people I spoke with. It turns out that it was just the beginning. Scrivener is a terribly impressive piece of software. After having written Client Oriented WordPress Development in it, I can say that it feels like TextMate in that I probably only used about 20% of the features, but that 20% is stellar. I loved the way I was able to segment the various sections of the book and choose compile-time formatting options. I would say that I spent about 10% of my overall time investment in the book to learn how Scrivener works and what to do when compiling the book in various formats.
I’m so happy to have found Scrivener, and really glad to hear a number of other authors feel the same exact way about it. I’m looking forward to further exploring the application to see how it can help me begin the revisions I’d like to make for the second edition of the book.
Actually selling the book
Another big inspiration for writing the book was to implement the ecommerce back end. Early on I had the idea and thought it would be great to implement some sort of book-focused customer access knowledge sharing forum that only those who have purchased the book would gain access to. I thought that if I were a paying customer the feature would be really neat in case I had any questions or wanted to talk through a topic of the book in more detail with the author himself. That was the initial criteria for the site so I began researching options. I wanted to implement something stable that integrated well with WordPress, so I shopped for a forum plugin. I quickly came to the conclusion that I’ve wanted to run a (new) bbPress powered site forever and a day so I went with that. From there I needed to find the proper cart to use.
The main criteria for the cart was the ability to sell digital products and even more importantly that it be based on native WordPress user accounts so as to tie in directly with bbPress. I’ve been waiting for an excuse to check out WooCommerce in more detail so that was my choice. A last detail was an ingrained desire to finally use Stripe on something; this was my chance. WooCommerce has a great Stripe payment gateway addon that I use and love.
The plugin installations were super straightforward, and customizing WooCommerce was a really pleasant experience. The most technical detail I’d like to explain is how I went about limiting forum access to paying customers only. Since WooCommerce uses WordPress native accounts, the first step was to tell bbPress the account type I wanted to use, that was as easy as tying into one of bbPress’ many filters:
function clientwp_forum_role( $role )
{
return 'customer'; // the WooCommerce user role
}
add_filter( 'bbp_get_participant_role', 'clientwp_forum_role' );
With that filter in place the act of creating an account during checkout would in turn create your forum access account as well. There was a bit of an issue in the way user account creation takes place, and it’s not the fault of WooCommerce, but an account is created regardless of the payment actually processing and completing so there was potential for an account to be made without a legit purchase.
I say it’s not WooCommerce’s fault because it’s not intended functionality on their part to only create the user account upon payment success. In the bigger ‘cart’ picture it’s very likely that an order with multiple products could have a payment issue and you don’t want to lock a paying customer out from checking their order status and resolving any issues. In my case I’m simply working with a single product that will either process or it won’t, so I wrote a function that would query for a completed order made by the account currently logged in and requesting the page. It came out something like this:
function clientwp_valid_forum_access()
{
$valid = false;
if( is_user_logged_in() )
{
// if the currently logged in user has at least
// one completed order, the account is valid
$args = array(
'numberposts' => 1,
'post_type' => 'shop_order',
'meta_query' => array(
array(
'key' => '_customer_user',
'value' => get_current_user_id()
)
),
'shop_order_status' => 'completed'
);
$order = get_posts( $args );
if( count( $order ) )
$valid = true;
}
return $valid;
}
The meta_query
and taxonomy arguments are specific to WooCommerce. I then do a bit of URL parsing to check and see if the requested URL is within the walled garden, and if so fire that function to see if the account has at least one valid (i.e. completed) order. If the check fails (not logged in, order not complete, etc.) the visitor is bumped to the home page and a message displayed indicating the forum is for paying customers only. I’m really quite pleased with the way the system turned out as it’s quite straightforward and stable. I think it provides another small reason for people to purchase the book and I’ve already responded to a number of great questions and follow-up from the book.
Lesson Five: Have fun with stuff like this when you don’t feel like writing.
Marketing ClientWP
After four months I had spent roughly eighty hours (probably more if I’m being honest) of solid work on the book and supporting materials. The site was live, the debut was made on Monday By Noon and Twitter and I simply let things take their course. The response was great, everyone was super supportive and I appreciate that so much. I wanted to see how far I could really take the release though. I read a number of articles here and there outlining some good tips on getting your newest stuff out there, but at the end of the day the book itself needs to carry it’s own weight.
I’m not going to mess with advertising because this book is far too niche, so I took a different approach. I’m a huge fan of book reviews, I publish them here all the time. So I reached out to a number of WordPress-focused sites asking if they’d like to review the book and give away a couple copies. Many site owners were receptive and appreciative of the offer. Others weren’t. Further there were a number of people I reached out to who didn’t even offer me a reply.
Reaching out to these site owners was an eye opening experience. It showed me that there is a significant portion of WordPress oriented sites that are in it for reasons that don’t parallel my reasons. I was quick to see that side of the ‘business’ in my correspondence with the site owners in addition to the feedback I received. With that group on one side, I focused on the other side: the site owners that know and love WordPress and truly embrace the community for more than a deep pocket. The interactions I’ve had with those authors has been superb, and I’m still waiting for a number of reviews to go live but so far that’s been a great investment of time for me. As a result, I’ve learned that certain resources like Client Oriented WordPress Development simply don’t appear as valuable to a certain demographic of WordPress fans, and that’s completely okay, I was just mistaken in assuming similar reasons for sharing knowledge of WordPress as mine.
I’d be lying if I didn’t admit to messing around with banner ads though, albeit in a minimal fashion. I’ve heard time and time again that it can be a waste of time but with all of these niche ad sites out there something had to have something going right? I picked something that fit my price range (which admittedly was minimal) and gave it a shot, just to see if anything came out of it, even a click. Without going into too much detail I quickly realized that this book is far too niche for a broad, scattershot banner ad campaign. I also know that my litmus test was likely a poor representation of a full-on banner ad effort, but I don’t have the cash for that. Traditional advertising isn’t the way to go for me, so I’m going to stick to grassroots word of mouth suggestion from readers to future readers and hope that continues down the path it has.
Lesson Six: Listen to your gut, don’t reach outside your market.
What I’d do different
I’m now over a month after the launch of the book and have a bit of hindsight to focus on. I’m so happy to have completed the project but of course there are things I would have done different now that the project is out in the wild. Beginning with the onset I would have taken more time to let the idea settle and percolate into something a bit more solidified before I began writing. I think that would have helped with the overall structure and consistency of the initial chapters which ended up being a bit discouraging in their disorganization after a couple weeks. I also would have taken more time to speak to people directly about the book, discuss the premise and make sure I was accommodating the target audience in the best way possible. The people I did reach out to (my wife and a few friends) offered golden feedback which was invaluable during the process, I just should have given them more time and made it more of a discussion, a more progressive process.
The other thing I would have done differently was to come up with some sort of ‘teaser’ campaign for the book and had that in place for at least a few weeks before the launch. There’s something I enjoy about a complete unveiling of a project but I can’t help but think that starting the rumor a few weeks early would be even more impactful in the long run. I’m going to have to work on my issues with pride wanting to hide my works in progress under a cloak until ‘the big day’ when it’s time to tout a release. I continually deceive myself into thinking that I need to keep my ideas hidden from view in fear of someone else doing it better and faster with a later start. Ridiculous, I know.
There are a number of smaller things I’d approach in a different way, but I’m still thinking that through in preparation for subsequent editions of the book. Yes, I do plan on collecting errata and recompiling a few sections of the book with more (or less) detail given the content at hand. I’ll be taking my time with it and waiting for additional feedback over the coming months, but it will be a nice ongoing project to keep my head in the game.
Lesson Seven: Slow the heck down. You’re not racing anyone but yourself.
So glad to check it off my list
I don’t want to make it sound like writing an ebook is so daunting you shouldn’t attempt it, quite the contrary. At the same time though I don’t want to sugar coat it and make it sound like it was a ton of fun the whole time; it wasn’t. This project, more than many others I’ve partaken in, was an extreme roller coaster of pros and cons that had me repeatedly wanting to throw my hands up and be done with it just to save the angst. That doesn’t take away from it being rewarding though. This was something on my mind for the past five years and I’m thrilled to have it out there before my wife and I have our first baby and the time to accomplish the goal becomes exponentially reduced.
I learned a ton from this project, and I hope my account gives you something to work with if you have similar aspirations. I think self publishing is fantastic and I can’t wait to see even more people take advantage of it. I didn’t set out to write this book to make a million dollars, I did it for the same reason I publish articles on Monday By Noon. I love sharing what I know about WordPress and how it applies to my workflow, and I think people find it valuable. That’s one of the reasons you’re not going to find a detailed price breakdown of the income the book has generated or anything like that, because to me it’s beside the point. Has the book set me up for early retirement? Of course not, far from it! It has given me a lot of perspective though, it’s given me even more respect for the talented writers I read from day in and day out, and it’s humbled me in the process. I’m thankful to have been blessed with the time and energy to get this book out, and I hope at least a few of you enjoy reading it as much as I did writing it.
Comments
I’ve been waiting for this post Jonathan 🙂 Thanks for going into so much detail and sharing the whole process, I really love the way you go about in sharing your workflow and processes, you’re really good at it and readers can definitely learn a lot from you.
For anyone out there still considering buying the book, all I can say is that this post is a reflection of what is inside the book, Jonathan has the gift of explaining things at just the right level so you can just dive into things yourself with the knowledge you glean from the book.
Thanks for the extensive post Jonathan it’s always great to see others methodology and practices, and congratulations on the book.
Hi Jonathan,
I just felt the urge to comment on your post, first of all to let you know how interesting it was to read about your travails with getting the book published. Sesond, I want to commend you on being so open and honest about the whole experience. Not everyone would be able to lay it all out there.
I will be buying you front end upload plugin soon, but for now I just want to congratulate you with your new book!
Hey Jonathan,
Great to read you just took the plunge and did it. I love your drop-all approach to pursuing your passions, even if they don’t always work out as hoped. Sometimes the learning experience is worth more than all money you could have earned.
Good luck with the book!