TL;DR: This is the story about how I got my first publishing deal, what this book is about, and what problems I encountered along the way.
I spent last weekend sitting in an awesome new coffee shop in Oakland, typing up the last two chapters of my Practical Node.js manuscript. The book is scheduled for release by the UK-based technical publisher Apress in the late spring.
I started writing the manuscript in October 2013. I devoted my weekends and holidays to it (as so many entrepreneurs and writers do). The fact that I smartly had a few example apps and some drafts written — some of them for my blog, others for proposals to Pragmatic (declined!) — helped to speed things up. (Needless to say, in publishing rejection is a common thing and often an opportunity to get better.) However, the writing itself wasn’t the hardest part. Here’s the short story why.
— Louise Corrigan (@LouiseEditor) February 25, 2013
Then the Express.js Guide proposal was put on hold. This is another frequent occurrence in traditional publishing and a peculiarity for me — books tend to stall due to a variety of factors. For example, there were changes in structure, in the publisher’s software, in the approach to the concept/market fit, and then came the Christmas holidays. The contract was eventually signed a few weeks ago, and the new book will be called Pro Express.js (by the way, Express.js Guide is on sale!).
Fast-forward six months — after more emails and proposals, I DocuSigned a contract for a different Node.js concept, called Practical Node.js: Building Realtime Scalable Web Apps.
The book teaches with hands-on examples. But what makes the book different (and a more useful resource) is the utilization of myriads of the most trusted and used libraries needed for building a real-life Node.js app. The gap in literature on Node.js is particularly wide because most of the books either cover unrealistic/unpractical Hello Worlds, only focus on the core Node.js modules, or authors jump straight to the advanced and niche topics. My intention was to create a book where someone making a recommendation would say, “If you read just one book on Node, this is the book you should read.”
Another hurdle involved in this traditional publishing process with Apress was purely technical — converting Markdown files into MS Word. I was near panic mode after spending hours trying out different approaches and apps:
- RTF to MS Word
- HTML to MS Word
- HTML to RTF to MS Word
- ByWord to MS Word
None of them produced reliable results. Every effort resulted in either images missing, skewed formatting, or styles not applied (I really only needed the source code and text to have the appropriate MS Word styles). Fortunately my luck turned the other way when I found PadDoc. With just the default command/setting, it produces splendid MS Word docs from Markdown.
To sum up my story: never give up. If something doesn’t work, take a break and tackle the problem from a different direction (i.e., change your concepts and tools).
— Louise Corrigan (@LouiseEditor) February 19, 2014
Here’s a preview of the contents of Practical Node.js: Building Realtime Scalable Web Apps. The book consists of 12 chapters:
- Setting Up Node.js and Other Essentials
- Using Express.js to Create Node.js Web Apps
- TDD and BDD for Node.js with Mocha
- Template Engines: Jade and Handlebars
- Persistence with MongoDB and Mongoskin
- Using Sessions and OAuth to Authorize and Authenticate Users in Node.js Apps
- Boosting Your Node.js Data with the Mongoose ORM Library
- Building a Node.js REST API Server App
- Real-time Apps with WebSockets, Socket.IO and DerbyJS
- Getting Node.js Apps Production Ready
- Deploying Node.js Apps
- Publishing a Node.js Module and Contributing Back
The book is getting close to publishing. The next step is to wait for a technical review, which is completed by two subject matter experts (smart and detail-oriented pros). Then, I’ll need to address their comments, add more explanations here and there, clarify some terms, and fix some typos and bugs.
It’s worth mentioning that Apress works on a chapter-by-chapter basis, which is fast. It took time to adjust — I was used to seeing the whole book at once when I worked on Rapid Prototyping with JS and Express.js Guide. Each book I’ve completed is its own journey, and I’ve learned something through each new process. I’m excited to share my knowledge with you all.
PS: If you liked this post, check out my new project ProgWriter.