ExDoc vs TypeDoc
ExDoc
ex-doc.hexdocs.pmTypeDoc
typedoc.orgSide by side
| Figure | ExDoc | TypeDoc |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Linux | — | Yes |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 0 | 1 |
| Spec score · Documentation Generators | 7.0 (#30) | 8.0 (#10) |
| Customization | ExDoc supports custom pages, guides, Livebooks, cheatsheets, custom sidebar grouping, and customizable logos and favicons. | Themes can change the look and feel of generated documentation, and plugins can add themes. |
| Integrations | ExDoc can be used with Mix, Rebar3, or through its command line interface. | The GitHub Pages option generates a .nojekyll file, and source links can use GitHub or Bitbucket remotes. |
| License | ExDoc source code is released under the Apache 2 License, while generated contents may have different licenses based on rendering components. | The TypeDoc repository identifies its license as Apache-2.0. |
| Output formats | It can generate offline accessible HTML, Markdown including llms.txt, and EPUB documents from API documentation. | The default output is HTML, and TypeDoc can also write a JSON model describing the project. |
| Purpose | ExDoc generates documentation for Erlang and Elixir projects. | TypeDoc converts comments in TypeScript source code into HTML documentation or a JSON model. |
Plans
In their own words
TypeDoc
TypeDoc is a free TypeScript documentation generator that turns source comments into HTML pages or a JSON model. It builds from project exports and follows re-exports, allowing members declared elsewhere to appear in documentation. TSDoc and JSDoc tags are extracted, Markdown is accepted in comments, and fenced code blocks receive Shiki syntax highlighting. HTML and JSON are built in; Markdown output needs a plugin such as typedoc-plugin-markdown. A default theme is included, while plugins can add themes, alter conversion and symbol organization, or change display. Custom CSS and JavaScript can further adjust generated pages. Configuration can come from an options file, package.json, or tsconfig.json. TypeDoc runs on Node.js, uses the TypeScript compiler, and supports the current Node.js LTS or newer. For npm monorepos, the packages entry-point strategy can combine package documentation into one site. The project is Apache-2.0 licensed. Documentation warns that global installation can separate plugins and themes from the intended TypeDoc installation.