Starting today, you can search across all Erlang and Elixir packages with the new search engine and landing page for HexDocs, powered by Typesense.
More importantly, you can scope your search to specific packages. For example, by running mix hex.search (remember to update Hex before with mix local.hex), Hex will open up HexDocs with the exact packages (and versions) used by your project preselected. For example, if you want to contribute to Livebook, running mix hex.search will open up the following page:
This effectively gives developers a per-project documentation search experience, allowing them to quickly find relevant information. Tools like Tidewave also expose the search engine as a MCP tool, allowing coding agents to search and explore all packages available to a given project.
A new version of Elixir’s documentation generator, ExDoc, has also been released with support for custom search engines. This way frameworks like Phoenix, which are effectively a collection of packages, can provide a custom search that includes phoenix itself, phoenix_live_view, phoenix_html, and other dependencies. This helps newcomers, who are not yet fully familar with the ecosystem, to find what they are looking for. Check out the updated documentation for Phoenix:
This release is a culmination of the efforts of several individuals and companies. We are grateful to Typesense, for hosting our search engine and index, and Plausible Analytics for sponsoring development time. We also thank the bright minds of Guillaume Hivert, Paulo Valim, Ruslan Doga, and José Valim for bringing the project to life.
The search engine/index is a hosted Typesense instance. The HexDocs service, which does the job of unpacking and publishing documentation for each package, was augmented to extract search metadata published by ExDoc and push it to Typesense. All packages published within the last year have been indexed. Documentation for existing projects can be republished at any time by running mix deps.update ex_doc && mix hex.publish docs. Pull requests to parse additional metadata formats are welcome (or you may alternatively publish the same metadata format as ExDoc).
While all Hex services are implemented primarily in Elixir, the new landing page talks directly to Typesense and therefore has no server-side component. For this reason, we kindly asked Guillaume Hivert to implement the front-end in Gleam, so we continue to leverage the overall Erlang Ecosystem. The project is using the Lustre web framework, and if you have suggestions or you want to add new features, feel free to contribute to the project.