Booktype is a free, open source publishing project written in JavaScript and released under AGPL-3.0. It has 961 GitHub stars, 195 forks and 8 open issues, and was last pushed 7 months ago. On this registry it ranks #34 of 46 tracked projects in Publishing, with 5 head-to-head comparisons available.

What is Booktype?

Booktype is a free, open source, AGPL-3.0 licensed publishing platform that lets authors, companies and organisations edit, proofread and produce books formatted for print, Amazon, iBooks and almost any ereader from a single HTML source.

What it is

Booktype is a book production platform built on the Django web framework and a set of Python libraries. It imports DOCX or EPUB files, converts them into single-source HTML that becomes the working copy for online editing and proofreading, and then uses CSS Paged Media to generate output for print, the open web and almost any ebook reader. The registry records JavaScript as the primary language, while the README describes the server side as Django and Python; the application ships with a test suite written for py.test and the pytest-django plugin. Its interface is translated into many languages by a community of contributors through Transifex, and the project is released under the GNU AGPL licence.

The concrete problem it solves is the fragmented book pipeline. Instead of editing a manuscript in one tool and then running separate conversions for print, the web and each ebook format, Booktype keeps one HTML source and renders every output from it. It is aimed at collaborative production that spans time zones and borders, so that writing, editing, proofreading and conversion happen against the same live text rather than a chain of hand-off files.

Key capabilities

  • Imports DOCX or EPUB files and converts them into single-source HTML for online editing and proofreading.
  • Produces print, open web and ebook output using CSS Paged Media.
  • Formats output for print, Amazon, iBooks and almost any ereader.
  • Carries a restful topic, indicating a REST API surface for integration.
  • Provides Docker installation files through the separate booktype-docker repository.
  • Ships a test suite run with py.test and pytest.ini, supporting coverage output via py.test --cov-report term-missing --cov=path/to/Booktype.
  • Offers user interface translation through Transifex for the contributor community.

Who uses it and how

  • Authors, companies and organisations that need to edit and publish books without maintaining separate toolchains per format.
  • Distributed editorial teams doing collaborative, agile production across time zones and borders.
  • Publishers that want one manuscript to serve print, the open web and multiple ebook readers simultaneously.
  • Translators and contributors working on the interface through the Transifex project.
  • Developers and administrators self-hosting on GNU/Linux or OS X, either from the user manual or from the Docker files.

Getting started

Installation instructions for GNU/Linux and OS X are published in the Booktype user manual, and files for installation using Docker are held in the booktype-docker repository. Contributors typically run the test suite from the instance root containing manage.py and pytest.ini.

How it compares

The provided facts name no comparable publishing platforms and no list of paid products that Booktype replaces, so it stands alone in this registry. Any comparison beyond the AGPL-3.0 licence, the Django foundation and the REST topic would have to come from sources outside these facts.

When to use it — and when not to

A self-hoster must operate a Django and Python application, follow the user manual or Docker setup, and maintain a working instance root with manage.py and pytest.ini for testing; the README does not document a hosted service. Teams without Python or Django operational capacity, or those wanting a managed SaaS rather than something they run, should look elsewhere. The published README excerpt is also weighted toward contribution instructions, with installation and deployment details living off-repository in the user manual, and it lists JavaScript as the language while describing a Django and Python stack, so expect to read further than the repository front page before committing.

project readme (upstream, from github) — read inline

Booktype

Booktype makes it easier and quicker for authors, companies and organisations to edit and publish books. It imports DOCX or EPUB files, converts them into single-source HTML for online editing and proofreading, and uses CSS Paged Media to produce good-looking output for print, the open web, and almost any ebook reader, in seconds. Booktype facilitates collaborative, agile production across time zones and borders.

Booktype is built on the Django web framework and many great Python libraries.

The Booktype user interface is being translated into many languages by our community of contributors. Your help with development or translation is always welcome!

Installation

Installation instructions for Booktype on GNU/Linux and OS X can be found in the Booktype user manual.

Files for installation using Docker can be found in the Booktype-docker repository.

More information

How to contribute

  1. Fork the booktype/Booktype repository. Please see GitHub help on forking or use this direct link to fork.
  2. Clone your fork to your local machine.
  3. Create a new local branch.
  4. Run tests and make sure your contribution works correctly.
  5. Create a pull request with details of your new feature, bugfix or other contribution.
  6. Sign and return the contributor agreement paperwork, either for an individual, or an entity such as a company, university or other organisation. This paperwork gives us the right to use your work in Booktype, and makes it clear that you retain ownership of the copyright in your contribution.

Testing

Booktype uses the py.test testing framework with the pytest-django plugin. It makes the testing process easier, and also provides the ability to run ready-made django (unittest) tests.

To run tests:

  1. Open a terminal and activate the virtual environment (Booktype must be installed).
  2. Go to (cd command) instance root (folder with manage.py and pytest.ini file).
  3. Run the py.test command.
  4. If you want pytest to print test coverage information, you should run py.test --cov-report term-missing --cov=path/to/Booktype. You can read more about coverage here: pytest-cov

License

Booktype is licensed under the GNU AGPL license.

Frequently asked questions

Is Booktype free to use?

Booktype is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Booktype do?

Booktype is a free, open source platform that produces beautiful, engaging books formatted for print, Amazon, iBooks and almost any ereader within minutes.

What is Booktype written in?

Booktype is primarily written in JavaScript. Its source is publicly available at https://github.com/booktype/Booktype, and it has 961 GitHub stars.