Skip to content

24 ways to impress your friends

How to Write a Book


Comments are ordered by helpfulness, as indicated by you. Help us pick out the gems and discourage asshattery by voting on notable comments.

Got something to add? You can leave a comment below.


Out authors write in MultiMarkdown. This allows us, with a build file, a standard config & templates, to use Pandoc to produce neat clean ePub’s. We can then convert these using the Calibre command line utility into a MOBI for Kindle.

If necessary (as we do) you can re-write some bits of the ePub with XMLStarlet
e.g. for UUID or a cover for Kindle when converted.

Wrap all this up in a small script and you can go from the authors MultiMarkdown files into ePub and MOBI in a few minutes ;-)


Happy to hear you landed on Prince, that’s what I use for document generation. Prince is great but it’s like a $3500 polyfill for bad CSS3 paged media support in browsers.

I look forward to the day where I won’t be needing Prince for my work. It seems that there are enough parties who would have an interest in improving this aspect of browser support (I’m thinking Apple and Amazon). It’s not a sexy subject but making HTML output to paper in a good way will ultimately make it the ultimate archiving language, moreso than it already is.

Long after proprietary .docx and .pages formats have faded, structured HTML documents will be able to be machine and human-read.

Matthew Rings

Self publishing is much more profitable than going the “old school” traditional route. I tried both approaches and now creating video and subscriptions to content is more profitable than book publishing.
Matthew Rings
CEO & Founder

Christina Kim

I am co-authoring a book and we were debating between self-publishing and hiring a publisher. Thanks for the breakdown on self-publishing. We will start work along these lines!


I’m currently working on a book and looking to use Leanpub. It’s a great system and allows the book to be written in Markdown

Jonathan Snook

Marie: I haven’t run into anything with the conversion process and haven’t had any complaints or concerns from anybody who purchased the book through Amazon. As mentioned in the article, you do want to consider how rich of an experience you want to create for EPUB. The richer it is, the less it’ll port over to other platforms.

For example, I originally considered embedding video into the EPUB version but the ability to port to multiple formats was very limiting. I decided to leave the video out.

Jonathan Snook

Stephen Holdaway: I tried wkhtmltopdf but, at the time, it didn’t support as many of the CSS features that Prince did and that I was already using to style the book with. As a result, I left it by the wayside. It might be worth revisiting.


Jonathan: Thanks, that’s good to know.

I’m not planning on using too rich an epub experience; it’s a novel not something more interactive than that.

Michael Kjeldsen

Brilliant walkthrough of how to publish a book. I must admit though, that I expected tips on the actual writing/editing process of a book directed towards a technical audience :-)

But definitely interesting!

Zak M

Great post AND great ebook. As somebody who dabbles with ebooks too, i’d also strongly suggest ensuring the epub validates using epubcheck. I suggest testing on the popular apple/windows and android readers too.

Also the mobileread site is wealth of advice and tips



I Know writing an article and a book is most difficult thing for any beginner as well as professional. Because writers facing lots of problems when start writing any book. This post encourage me lot about writing and i use my skills to write awesome content.

Stephen Holdaway

I’m curious that the open source software wkhtmltopdf hasn’t been mentioned for converting HTML to PDF. It is a command line tool, but it’s very straight forward to use and is incredibly powerful.

I’ve used wkhtmltopdf to generate invoices, packing slips, and multi-page documents that were originally designed in desktop publishing programs with no compromises. Additionally, being WebKit based, JavaScript can be used to alter documents before they are rendered to PDF.


Lovely article and nice timing, this is exactly what I’m up against right now!

I’m choosing to assemble things using, and am likely to use it to spit out the files for LaTeX as well (that’s what I’m intending to use to create the PDF and other formats).

What’s your experience with transforming EPUB to MOBI using Calibre; is there anything I need to be aware of in that process, any kind of gotchas?

Impress us

Be friendly / use Textile