← All news

Monday 1 June 2026 · Josh Price

HexDocs moves to per-package subdomains

HexDocs has changed how it serves documentation: every package now lives on its own subdomain.

So hexdocs.pm/ecto becomes ecto.hexdocs.pm, and hexdocs.pm/ecto_sql becomes ecto-sql.hexdocs.pm (underscores turn into hyphens). Organisation docs move from org.hexdocs.pm/package to org.hexorgs.pm/package.

The reason is security. Until now every public package was served from the same origin, so a malicious or compromised package could, in principle, reach into another package's docs in the browser. Giving each package its own subdomain hands that isolation to the browser's same-origin policy for free. It's a small, sensible piece of the same security push we wrote about across the ecosystem.

Nothing breaks today, old URLs redirect to the new ones. But if you've got HexDocs links in a README, a blog post, or your socials, it's worth updating them to the subdomain form while you're thinking about it.

Read the announcement on hex.pm.