A new project
founded by Adam Hyde.

More information


Cabbage Tree Labs is a home for publishing projects critical for the wider publishing ecosystem. To move publishing of all types forward we must first get publishing ‘into the web’.

Currently the lab is fostering the development of three critical pieces of this puzzle that look after getting out of MS Word and into the web, producing/editing content in the web and finally, getting out of the web into paginated print ready PDF. All forms of publishing – scholarly journals and monographs, trade, white papers, documentation, rapid content production methods, policy (etc) – can benefit from these tools.

The lab is a safe harbor for the ongoing development of these technologies and communities. It’s also a home for an international group of Publishing experts to work on problems they are passionate about.

Active Projects
  • XSweet

    XSweet is an open source tool for converting Microsoft Word documents (.docx) into HTML and beyond. Built as a series of XSL transformation steps, it’s designed to be modular and flexible.

  • Wax

    Wax 2 is an open source web based word processor. Modular, extensible and built with Publishers to meet their very demanding requirements. Built on ProseMirror.

  • Paged.js

    Paged.js is an open-source library to paginate content in the browser. Based on the W3C specifications for Paged Media and Generated Content for Paged Media CSS modules, Paged.js is extensible.

  • Flax

    Flax is an extensible, content agnostic publish front end. Flax is a new product, more information coming soon.



Our Team
  • Adam Hyde

    Adam is a publishing innovator. Founder of Coko, Book Sprints, FLOSS Manuals, Booktype and more. Adam lives between New York and Koutu, New Zealand.

  • Julie Blanc

    Paged.js Team. Julie is a CSS guru and plays a vial role in interpretating the PagedMedia CSS specs and testing if paged.js is compliant. Julie also does quite a bit of presenting about PagedMedia and how it works. Julie lives in Paris and is undergoing her PHD there at the University of Paris 8 (Paragraphe lab) and at EnsadLab-Paris. Julies work and research focuses on the implications of automated typesetting in design practices.

  • Fred Chasen

    Paged.js Team. Fred is well known in this domain, having worked on publishing platforms and pagination for OReilly and Readium. Fred is also the founder of the popular epub.js. Fred is the main JavaScript developer for paged.js and lives in L.A.

  • Julien Taquet

    Paged.js Team. Julien is a book production expert having honed his skills with CSS book production in rapid production environments like Book Sprints. Julien now is focused on building community around Paged.js and bringing his skills to educate the growing community fo designers wanting to migrate to CSS book design.

  • Christos Kokosias

    Wax Team. Christos has been building web based word processors using a number of different open source frameworks, for the last 3 years. He is currently rebuilding Wax 'the right way' making it infinitely more extensible and customisable. Christos lives in Athens, Greece.

  • Wendell Piez

    XSweet Team. Wendell is a stone cold guru in the XML and XSLT worlds. Now working with National Institute of Standards and Technologies (NIST), Information Technology Laboratory (ITL), Wendell is also a long term friend of the XML Guild and has been deeply involved in Balisage for many years. Wendell lives in Maryland, USA.

  • Alex Theg

    XSweet Team. Alex is the talented understudy of Wendell and has been doing an amazing job extending XSweet and maintaining it under Wendells tutelage. They make an awesome team together. Alex lives in San Francisco.


Why Cabbage Tree Labs?

Collaboration is integral to publishing. Authors, researchers, editors, proofreaders, designers, typesetters and production staff all work together to deliver content to the world. Unfortunately collaboration is currently constrained by linear workflows, each stage of the publishing process is gate-kept by whoever is actively working on the documents at that time.

The web offers the unique opportunity for collaboration to happen concurrently, eliminating the gate-keeping and consequent waiting times,  miscommunications and versioning madness. If everything that needs to happen to the content happens in the web all the way through to delivery, individual tasks can be done quicker and the entire process becomes lighter to manage. What this means practically is that each actor can do what they need to do when they need to do it and the status of the document is available at a glance at any point in the process.

To create this vision of optimized collaboration in publishing there are three issues to solve: getting content into the web, editing content in the web, and getting content out of the web (into print ready formats). In others words, we have to solve everything. Attempts have been made to solve these issues before but they haven’t been solved in a way that satisfies Publishers. Solving these three critical problems is what the initial projects of the Cabbage Tree Labs set out to do.

To get content into the web we have XSweet, which transforms MS Word into HTML. Authored by XSLT guru Wendell Piez, with the able assistance of Alex Theg, XSweet is a sophisticated collection of XSLT scripts. The challenge is that at its heart, MS Word is a horrible, tangled mess of un-semantic XML nonsense. XSweet distills MS Word’s messed-up syntax into its constituent parts: lists, headings, math, images, etc. It then translates these elements into clean, semantic HTML. XSweet also uses a number of smart methods to interpret the author’s intent, as poorly expressed in the docx underlying markup, and uses this information to further clean up the document’s structure.

For editing content in the web there is Wax, a web-based word processor being developed by Christos Kokosias. Previous generations of online editing tools suck because they do not maintain the integrity of the source, nor do they give Publishers the fine-grained editing control they require. Wax solves these challenges by utilizing modern JavaScript frameworks. These frameworks catch the users’ input as they ‘edit’ and map the operations (adding/deleting content, styling, etc.) onto a separate data structure. It is this layer of interaction ‘capture’ combined with strict management of how these operations are applied to the content, that gives the framework absolute control over the end result we need. As you can imagine, this kind of work requires enormous attention to detail. One ‘unexpected’ result from a single keystroke can drive Publishing staff crazy – which is why we are designing Wax with them.

For getting content out of the web and into print formatted PDFs there is Paged.js, a JavaScript pagination engine. This is being built by the talented team of Julie Blanc, Fred Chasen, and Julien Taquet. Paged.js takes HTML and outputs paginated PDFs. The output is all CSS controlled, complies to the CSS PagedMedia specifications, and includes controls for all your print needs, such as running heads, margins, footer controls etc. Yes you read that correctly, we are building a new generation typesetting engine. Sounds simple, no?

These are, in my opinion, the three most critical projects for Publishing at this stage in the migration of Publishing into the web. Unless we can solve these three critical issues and solve them with the right attention to detail and control that the Publishing sector requires, then Publishing workflows will remain mired in the unholy, alternative trinity of MS Word + email + external typesetting vendors.

These three projects may appear humble. Cabbage Tree Labs might also seem a rather quiet space where projects come to be mentored, resourced, and incubated. However, the work going on here is huge and ambitious.

Cabbage Tree Labs is the vehicle for supporting these three projects going forward. Its not an expensive enterprise, but it is hard to attract support for such critical pieces of Publishing infrastructure. There isn’t enough awareness about how important it is to solve these problems possibly because many assume that these problems have already been solved. However, remedies to date are, unfortunately, partial and insufficient. Not nearly enough care and attention has been given to the right architecture and approach. We aren’t making that mistake. Cabbage Tree Labs is artisanal, open-source development at its best. The Lab is working towards a common good, populated by people who are the very best at what they do, and who are passionate about solving these problems –  the right way.

To keep this whole enterprise rolling is going to cost a minimum of $200,000+ USD a year. That is bare bones. If we get more we can do a lot more, but 200k is the baseline. Please donate using the button provided if you can! The Lab is lightweight and cost effective and is investing in the right people. I’m currently not drawing income from the Lab, as I have other work to do running the Collaborative Knowledge Foundation (Coko). I’m doing this purely because it needs to be done. If you can help with keeping Cabbage Tree Labs going, please let me know.

I’ll also be helping each team develop community: users, designers, strategic stakeholders, PR folks, and developers. The works. If you want to help one of the very ambitious, hard working, and important projects listed here, please also reach out to me.


Site Credits

Cabbage Tree identity, logo and images by Pepper Curry

Text application by Julien Taquet

Site Design by Ian Hamilton

Adam Hyde, Concept & Oversight

Many thanks to Dan Morgan, Jennifer Crowe and Faith Bosworth for helping improve the About text.

Warning: Unsupported Browser

Your browser is old and unsupported. You may still use the site, but functionality will be limited and you may see errors. Please consider updating your browser.