This repository contains the Chainstack Developer Portal built with Mintlify. When working on the project interactively with an agent (e.g. the Codex CLI) please follow the guidelines below for efficient documentation development and maintenance.
- Always use
mintlify devfor local preview. - Test at http://localhost:3000.
- Do not deploy to production during agent development sessions.
- Run link checks with
mint broken-linksbefore submitting PRs.
The docs use Mintlify's product switcher with two products:
- Cloud — managed blockchain infrastructure (docs in
docs/) - Self-Hosted — deploy on your own infrastructure (docs in
docs/self-hosted/)
Both products share the same docs.json for navigation. When adding pages, make sure you add them under the correct product.
When creating new documentation:
- Install Mintlify CLI:
npm i -g mintlify - Run dev server:
mintlify dev - Check for broken links:
mint broken-links - Validate build:
mint validate - Follow existing patterns for consistency
Every MDX file must start with YAML frontmatter:
---
title: "Clear, specific title"
description: "Concise description for SEO and navigation"
---Never forget to add new files to docs.json navigation.
When adding new documentation:
- Create MDX file in appropriate directory (
docs/,reference/, orrecipes/) - Add frontmatter with title and description
- Update
docs.jsonto include file in navigation (without.mdxextension) - Test navigation works in local preview
The documentation has two products with separate release notes:
- Cloud — managed blockchain infrastructure (
changelog.mdx+changelog/directory) - Self-Hosted — deploy on your own infrastructure (
docs/self-hosted/release-notes.mdx+docs/self-hosted/changelog/)
Creating release notes requires three steps:
Copy previous entry within <Update> tags and paste on top:
<Update label="Chainstack updates: December 31, 2025" description=" by Your Name" >
**Protocols**. Your update content here.
<Button href="/changelog/chainstack-updates-december-31-2025">Read more</Button>
</Update>Create changelog/chainstack-updates-december-31-2025.mdx with same content (without <Update> tags).
In docs.json, in the Cloud product's Release notes tab, add the newly created file name (without .mdx) between changelog and the previous release notes entries:
"pages": [
"changelog",
"changelog/chainstack-updates-december-31-2025",
"changelog/chainstack-updates-previous-entry"
]Add a new <Update> entry at the top:
<Update label="Chainstack Self-Hosted v1.0.0: January 28, 2026" description="">
**Initial beta release**. Your update content here.
<Button href="/docs/self-hosted/changelog/chainstack-self-hosted-v1-0-0-january-28-2026">Read more</Button>
</Update>Create file in docs/self-hosted/changelog/ using format chainstack-self-hosted-v1-0-0-month-day-year.mdx. The page title should match the label.
In docs.json, in the Self-Hosted product's Release notes tab, add the new changelog page.
Use appropriate components for content:
| Component | Use Case |
|---|---|
<Note> |
Helpful supplementary information |
<Warning> |
Important cautions and breaking changes |
<Tip> |
Best practices and expert advice |
<Info> |
Neutral contextual information |
<Check> |
Success confirmations |
<Steps> |
Sequential instructions |
<CodeGroup> |
Multiple language examples |
<Tabs> |
Side-by-side information |
<Accordion> |
Progressive disclosure |
<Card>, <CardGroup> |
Highlighting content |
<Frame> |
Wrapping images with alt text |
When adding code examples:
- Include complete, runnable examples
- Use
<CodeGroup>for multiple languages - Specify language tags on all code blocks
- Include realistic data, not placeholders
- Use
<RequestExample>and<ResponseExample>for API docs
Follow the established style guide:
- Use sentence case for everything (not Title Case)
- Active voice over passive voice
- American English spelling
- Oxford comma in lists
- Escape dollar signs with backslash (
\$) in MDX files - Bold UI elements when referencing them
- Use
>for UI clickthrough paths
For API reference documentation:
- Document all parameters with
<ParamField> - Show response structure with
<ResponseField> - Include both success and error examples
- Use
<Expandable>for nested object properties - Always include authentication examples
When adding images:
- Place in
images/directory - Use descriptive filenames
- Wrap in
<Frame>component - Always include alt text
- Optimize for web (compress large images)
node-options-master-list.json is the main file for this Developer Portal where all the available node options are kept up to date. If you need a custom table with whatever options you want, you feed the master list to an LLM and generate your own table.
Relevant tables (updated on every master list change):
nodes-clouds-regions-and-locations.mdxprotocols-networks.mdx
When updating:
- Edit
node-options-master-list.json - Regenerate dependent tables
- Verify changes display correctly
Before submitting changes:
- All code examples tested
- Build validated with
mint validate - Links checked with
mint broken-links - New files added to
docs.json - Frontmatter includes title and description
- Images optimized and have alt text
- Follows sentence case convention
- Dollar signs escaped with backslash (
\$) - UI elements are bolded
- No Title Case used
- Create MDX file in
docs/ - Add frontmatter with protocol prefix (e.g.,
ethereum-tutorial-...) - Update
docs.jsonnavigation - Include complete code examples
- Add to relevant protocol's tooling page
- Create MDX file in
reference/ - Use API documentation components
- Include request/response examples
- Update
docs.jsonnavigation - Test interactive features
- Create MDX file in
recipes/ - Keep it concise and focused
- Include working code snippet
- Update
docs.jsonnavigation
| Command | Purpose |
|---|---|
mintlify dev |
Start local preview server |
mint validate |
Validate documentation build locally (strict mode) |
mint broken-links |
Check for broken links |
mint a11y |
Check accessibility (color contrast, alt text) |
mint openapi-check <file> |
Validate OpenAPI specifications |
mintlify install |
Re-install dependencies if issues |
The portal provides an MCP server at https://docs.chainstack.com/mcp:
- This is for documentation access, not RPC nodes
- It's streamable HTTP (not SSE)
- Agents can search and navigate all documentation
- Keep this in mind when structuring content
"Mintlify dev not running"
mintlify install"Page loads as 404"
- Ensure running in directory with
docs.json - Check file is added to navigation
- Verify frontmatter is valid YAML
"Broken links found"
- Use relative paths for internal links
- Check file exists at specified path
- Ensure
.mdxextension not included in links
Mintlify schema validation fail
- Make sure you update to the latest Mintlify version in your local dev environment
- Never use Title Case - always sentence case
- Never mix abbreviated and non-abbreviated date formats
- Always test code examples before publishing
- Always run link checker before PR
- Never commit without updating
docs.jsonfor new files
Following these practices ensures consistent documentation quality, maintains the established style guide, and enables efficient content management. Always preview changes locally and check for broken links before submitting pull requests.