Mintlify vs Htmlpress
Mintlify is a commercial docs platform. Content is authored in MDX in a Git repository; Mintlify hosts the rendered site, search, and analytics. Pricing is per-editor, with a free tier for open-source projects.
At a glance
| Axis | Htmlpress | Mintlify |
|---|---|---|
| Language / runtime | Rust (single binary, no runtime) | Author in MDX; runtime is Mintlify's hosted stack (not public) |
| UI framework | None (plain HTML + CSS, htmlpress-* web components) |
React (per Mintlify's docs) |
| Build tool | htmlpress binary | Mintlify CLI (preview) + hosted build |
| Content format | HTML and Markdown pages | Markdown + MDX |
| License | MIT, self-hosted | Proprietary, hosted-only |
| Output model | Prerendered static | Hosted on Mintlify infrastructure |
Architecture
htmlpress is one Rust binary, installed from npm (gethtmlpress), PyPI
or crates.io. It wraps each HTML page in one layout with a navigation and a theme;
there is no bundler, no UI framework and no plugin API. Every built-in file — the
layout, the styles, the scripts and each component — can be escaped: a file at the
same path under .htmlpress/ replaces it. The source and the output are
both yours.
Mintlify is a hosted SaaS. You commit MDX + a mint.json config to a Git
repo; Mintlify pulls it on push, builds, and serves the result from
<your-subdomain>.mintlify.app or a custom domain. The build
pipeline and runtime are managed and not user-installable.
Content layout is unconstrained on the htmlpress side: it scans by glob
(include/exclude in htmlpress.yaml, every
.html file by default), and a page's URL follows its file path below
the glob's base, so docs/**/*.html serves
docs/guide.html at /guide/. There's no required
docs/ folder. The navigation is built from the folders and each page's
<meta name="order">; a folder's index.html names its
group. Mintlify expects the file tree to match the navigation block in
mint.json; routes mirror file paths under the configured content root.
Content surface
Mintlify accepts Markdown + MDX with frontmatter and component embedding. It ships a
fixed set of components (<Card>, <Accordion>,
<Tabs>, <Steps>, …) that authors compose in
MDX. You don't write your own React components for the docs UI — you use Mintlify's
primitives.
htmlpress pages are plain semantic HTML, styled by the theme from the elements
themselves. Richer blocks are htmlpress-* custom elements
(htmlpress-callout, htmlpress-tabs,
htmlpress-filetree, htmlpress-cards, …), whose CSS and JS
are linked only on pages that use the tag. A project adds its own tag with
.htmlpress/components/<name>/<name>.html, which replaces
the tag at build time. The built-in ones (htmlpress-cards +
htmlpress-card, htmlpress-tabs,
htmlpress-filetree) produce the same kind of UI and can each be
escaped.
Mintlify's mint.json configures navigation, branding, and integrations
in one declarative file. htmlpress uses htmlpress.yaml for site-level
settings and each page's <head> for its own.
Feature matrix
| Capability | Htmlpress | Mintlify |
|---|---|---|
| Versioning | Partial (a section or a deploy per version) | Yes (built-in) |
| Internationalization (i18n) | Yes (translations, language picker, 7 bundled UI languages) | Yes (built-in) |
| Search | Yes (built-in, client-side) | Yes (built-in, AI-powered) |
| AI chat / agents | No (agent files: llms.txt, Markdown copies, skills) |
Yes (built-in) |
| Analytics | No (bring your own via head scripts) |
Yes (built-in dashboard) |
| OpenAPI rendering | No | Yes (built-in) |
| Blog | No | Yes (changelog/news pages) |
| Sitemap | Yes (with site set) |
Yes |
| RSS | No | Yes (changelog feeds) |
| Themes | Escapes in .htmlpress/ + --htmlpress-* tokens |
Theming via mint.json |
| Custom routes |
Any .html file; extra layouts in .htmlpress/layouts/
|
No (content-only) |
| Self-host | Yes | No |
Output & deployment
htmlpress writes every page to static HTML in .htmlpress/build/, along
with robots.txt, a sitemap.xml when site is
set, a Markdown copy of each page, llms.txt and the agent skills under
.well-known/agent-skills/. The base key serves the site
under a sub-path. See Deployment for host guides.
Mintlify deploys are handled by Mintlify. You don't build or host the output yourself; the platform serves the rendered site from its CDN and provisions TLS, domains, and previews. Disconnecting from Mintlify means re-authoring or migrating the content elsewhere.
See also
- Authoring — htmlpress' HTML surface.
- Customization — htmlpress' config keys and escapes.
- Comparison — back to the index.
Created with ❤ and Htmlpress