The tools for writing books and workshops have become so much easier and open. Even some enlightened publishing companies are moving with the times and not forcing you to write books in seperate word files. However, having to manage the expectations of a publisher can make book writing very unattractive.

Self publishing is much more fun and can be done at your own pace, using tools a developer can understand. Its also much easier to talk to a publisher when the book is mostly done.

I use GithubIO/gitbook, a node.js project to create my books and workshops. Gitbook generated a responsive design website as well as ebook formats in pdf, epub, etc.

All the content is written in markdown and can be managed with Git. There are also a range of Gitbook.io plugins that enhance the readers experience in terms of content style and user interaction.

You can also distribute your books via the self-publishing platform of Gitbook.io where you can sell your books on its marketplace.

Advantages of Gitbook.io

Simple to use tools, requiring only node.js to be installed

Writing content in markdown keeps it human readable as you write it

100+ plugsins help you style the book, applying different styles to the range of formats

Content can be managed in Git and collaboration can be done in services such as Github or Bitbucket

Website versions can be published on any webserver, Github Pages works well for these.