Sample Mintlify docs site with Encatch page feedback in the footer.
Mintlify site content lives in docs/ (the content directory). Playwright tests and dev tooling stay at the repo root.
mintlify-examples/
├── docs/ ← Mintlify content directory (run mint dev here)
│ ├── docs.json
│ ├── index.mdx
│ ├── docs-feedback.mdx
│ ├── encatch-config.js ← gitignored
│ ├── encatch-init.js
│ ├── custom.css
│ └── snippets/
├── tests/
├── package.json
└── playwright.config.ts
On Mintlify deploy, set the monorepo documentation path to /docs.
Mintlify requires Node LTS (20 or 22). Node 25+ is not supported.
Install the Mintlify CLI:
npm i -g mintIf your default Node is 25+, install Node 22 as well (Homebrew keeps it side by side):
brew install node@22Option A — Install the form: use the button above if you need the feedback form created in Encatch.
Option B — Wire this site: Copy docs/encatch-config.js.example → docs/encatch-config.js and set your Encatch publishable key and combined form slug / question slugs.
Publishable key: admin.encatch.com → Settings → Publishable key.
From the documentation-platforms repo root:
./docs dev mintlifyOr from docs/ directly:
cd docs
PATH="/opt/homebrew/opt/node@22/bin:$PATH" mint devOpen http://localhost:3000 (or the port shown in the terminal).
Playwright visual tests use a dedicated dev server on port 3333 (scripts/mint-dev.sh) so they do not conflict with other apps on 3000.
This example uses the same pattern as the Fumadocs examples, adapted for Mintlify:
docs/encatch-config.js— publishable key + combined form slug and question slugs (copy fromdocs/encatch-config.js.example). Must use this filename so it loads beforeencatch-init.js.docs/encatch-init.js— loads the Encatch SDK from CDN, initializes it, and exposes form helpers onwindow.EncatchDocs.docs/snippets/docs-page-feedback.jsx— footer UI (helpful yes/no, suggest edits, raise issue).- Each MDX page — imports
<DocsPageFeedback />at the bottom of the page.
Mintlify auto-includes every .js file in the content directory on each page (after interactive). Only commit encatch-init.js — keep encatch-config.js gitignored. Use encatch-config.js.example (not .js) so the template is not injected.
encatch-init.js syncs Encatch theme with Mintlify’s light/dark mode by watching the dark class on <html> and calling setTheme('light' | 'dark'), matching the Docusaurus example pattern.
Local mint dev note: Mintlify’s live preview may not inject root .js files the same way as a deployed site. The files are still served at /encatch-config.js and /encatch-init.js for manual checks. Playwright tests load them explicitly when needed.
| Pages |
|---|
/index, /docs-feedback |