Pluggability is hard. Many software projects avoid it by all means possible. Many try to contain it in the smallest possible scope. We believe that developers are creative and have specific requirements for their documentation engine. Some of them want to be able to render their docs in javadoc-compatible format. Some of them want features like a full-text search or runnable code snippets inside of the docs. And there are some that need features that we’ve never even thought about. To satisfy all of them, we decided to embrace full pluggability. And we decided to make pluggability fearless, so anyone can mix and match existing plugins or easily create new ones from scratch, without the fear of breaking anything.
In my talk, I would like to tell you how we decided to redesign and reimplement Dokka from scratch. I will introduce you to all the dangers and risks of pluggability and tell you how we mitigated them by design, grounded in strong guarantees. Finally, I want to show how easily and how much you can do with your old, boring documentation using new Dokka.