Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. ex_doc

ex_doc

NOASSERTIONElixirv0.40.3

ExDoc generates HTML and EPUB documentation for Elixir and Erlang projects with offline access, search, and custom pages.

Visit WebsiteGitHubGitHub
1.6k stars366 forks0 contributors

What is ex_doc?

ExDoc is a documentation generation tool for Elixir and Erlang projects that produces HTML and EPUB documentation from source code and Markdown files. It solves the problem of creating professional, accessible, and searchable documentation for libraries and applications in the BEAM ecosystem. It integrates with Mix and Rebar3 to automatically extract API details and supports custom pages, guides, and interactive content.

Target Audience

Elixir and Erlang developers who need to generate and maintain high-quality documentation for their libraries, applications, or open-source projects. It's particularly useful for projects published on Hex.pm that want to host documentation on HexDocs.

Value Proposition

Developers choose ExDoc because it's the official, battle-tested tool for the Elixir/Erlang ecosystem, offering a seamless integration with build tools, beautiful default themes, and extensive customization options. Its ability to generate offline-accessible docs with full-text search and cross-linking between dependencies sets it apart from basic documentation generators.

Overview

ExDoc produces HTML and EPUB documentation for Elixir projects

Use Cases

Best For

  • Generating HTML documentation for Elixir libraries published on Hex.pm
  • Creating offline-accessible EPUB documentation for Erlang applications
  • Building documentation sites with custom pages, guides, and livebooks
  • Documenting umbrella projects with multiple applications
  • Adding interactive content like Vega-Lite plots or Mermaid graphs to docs
  • Providing keyboard-accessible documentation with search and autocomplete

Not Ideal For

  • Projects requiring documentation for languages outside the Elixir/Erlang ecosystem
  • Teams needing real-time collaborative editing or WYSIWYG interfaces for documentation authoring
  • Applications prioritizing zero-JavaScript, server-side rendered documentation for SEO or performance reasons
  • Environments where installing Erlang development packages is restricted or problematic

Pros & Cons

Pros

Rich Navigation Features

Includes full-text search, keyboard shortcuts (press '?' for help), and autocompletion for quick access, enhancing developer experience as detailed in the README.

Multi-format Output

Generates HTML, Markdown (including llms.txt), and EPUB documents from API docs, ensuring offline accessibility and flexibility, as stated in the features list.

Extensible Custom Content

Supports custom pages, guides, livebooks, and JavaScript injections for rendering math, graphs, and more, allowing deep customization via the extensions section.

Accessibility Focus

Produces responsive documentation with night mode support and keyboard accessibility, adhering to modern web standards, highlighted in the features.

Cons

Erlang Environment Dependency

Requires Erlang development packages (e.g., erlang-dev on Debian) for some dependencies, which can complicate setup on certain operating systems, as warned in the README.

Ecosystem Lock-in

Designed specifically for Elixir and Erlang projects, making it unsuitable for documenting codebases in other programming languages, limiting its versatility.

Complex Extension Setup

Adding features like KaTeX for math rendering involves manual JavaScript injection and configuration, which may be daunting for developers unfamiliar with web technologies, as shown in the extensions examples.

Frequently Asked Questions

Quick Stats

Stars1,604
Forks366
Contributors0
Open Issues12
Last commit7 days ago
CreatedSince 2012

Tags

#elixir#offline-docs#rebar3#mix-tool#api-documentation#erlang#epub#documentation-generator

Built With

M
Makeup
J
JavaScript
E
Elixir

Links & Resources

Website

Included in

Elixir13.1k
Auto-fetched 19 hours ago

Related Projects

phoenix_swaggerphoenix_swagger

Swagger integration to Phoenix framework

Stars712
Forks184
Last commit11 months ago
bureaucratbureaucrat

Generate Phoenix API documentation from tests

Stars371
Forks77
Last commit1 year ago
ex_doc_dashex_doc_dash

Dash.app formatter for ex_doc.

Stars63
Forks7
Last commit5 years ago
xcribexcribe

XCribe is a doc generator for Rest APIs built with Phoenix. The documentation is generated by the test specs.

Stars61
Forks4
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub