Contribution Guidelines
How to contribute to Base documentation. This guide covers setup, writing standards, page placement, and the review process.Getting Started
Prerequisites
- Node.js 18+
- Mintlify CLI
Local Development
http://localhost:3000. Changes hot-reload automatically.
Repository Structure
Writing Standards
Every Page Requires Frontmatter
- Title: Use title case. Capitalize all words except short conjunctions and articles (e.g., “Integrate an Earn Product”).
- Description: Mintlify renders this as a visible subtitle below the page title. Write it for humans, not just SEO.
Language and Style
- American English
- Second person (“you”) for instructions
- Active voice over passive voice
- Present tense for current states, future tense for outcomes
- Define jargon when first used
- Parallel structure in lists and headings
- Action-oriented names when possible — “Integrate DeFi” not “DeFi Integration”
- Enterprise tone for financial use cases — “Integrate Borrowing” not “Get a Loan”
Content Organization
- Lead with the most important information (inverted pyramid)
- Progressive disclosure: basic concepts before advanced ones
- Break complex procedures into numbered steps
- Use descriptive, keyword-rich headings
- Group related information with clear section breaks
- Focus on user goals rather than system features
- Include troubleshooting for likely failure points
Code Examples
- Every code block must have a filename or title after the language tag
- Highlight key lines:
```typescript highlight={1-2,5} - Code blocks longer than 7 lines: add
linesfor line numbers andexpandable - Use
wrapto prevent horizontal scrolling - Always include complete, runnable examples
- Use realistic data — no
foo,bar, orexample.com - Never include real API keys or secrets
Images
- Wrap in
<Frame>with a descriptivealtattribute - Place image files in
docs/images/organized by topic
Accessibility
- Descriptive alt text for all images
- Specific link text — never “click here”
- Proper heading hierarchy starting with H2
- Sufficient color contrast in examples
Where to Put New Pages
Pages are organized across six tabs. Use this decision tree:- Is it a protocol specification? → Specifications
- Is it a hardfork change or migration guide? → Upgrades
- Is it SDK or API documentation? → SDKs & APIs
- Does it teach how to build a specific product? → Build on Base
- Is it about connecting infrastructure to Base? → Specifications (Base Protocol landing)
- Is it an entry point for new developers? → Get Started
Tab Overview
Rules
- A page appears in exactly one tab. If it fits two, prefer the more specific one.
- Hardfork-specific content always goes in Upgrades, even if it relates to a feature documented elsewhere.
- Get Started pages are entry ramps — they link to deeper sections, never duplicate content.
- Concept explainers that support integration go in Specifications > Reference, not in Build on Base.
Navigation
Editdocs/docs.json to add or remove pages from the sidebar.
- Adding a page: Add the path to the appropriate group in
docs.json. - Removing a page: Always add a redirect in
docs.jsonbefore deleting. Never remove a URL without a redirect. - Reordering: Items appear in the sidebar in the order listed in
docs.json. - Grouping: A feature gets its own nested nav group when it has 3+ pages. Features with 1–2 pages sit as flat entries.
Specification Pages
Spec pages in Core Primitives and Network Systems follow a specific structure. See content-guidelines.md for the full reference.Page Types
Writing Rules
- Be normative, not tutorial. Spec pages define how something works, not how to use it.
- Code over prose. Show the Solidity signature, then explain.
- Tables for enumerations. Roles, policy types, error codes — always tables, never bullets.
- Link, don’t duplicate. Reference pages link to the overview for context and vice versa.
Changelog Entries
Upgrade pages follow a structure inspired by improvement proposals (TIPs, EIPs). See content-guidelines.md for the full template.Required Sections
File Naming
02-cobalt-b20asset-multiplier.mdx, 02-cobalt-policyregistry-composite-policy.mdx
Components
Use the right Mintlify component for the content type:
See mintlify-reference.md for full syntax examples.
Placeholder Pages
New pages without content use this format:Governance
Adding Solutions or Use Cases
Before adding a new solution to Get Started or Build on Base, or renaming an existing section, you need approval from Eric Brown and Mind Apivessa. Mind Apivessa is responsible for getting approvals from BD and GTM. Solutions are ordered by prominence. Current order:- Integrate DeFi
- Tokenize Assets
- Issue Stablecoins
- Accept Payments
IA Changes
Structural changes to the information architecture — adding tabs, renaming sections, moving pages between tabs — should be discussed before implementation. Reference ia-guidelines.md for the current structure and decision log.Opening a Pull Request
- Base branch:
masteris the default branch of base/docs. Branch frommaster(in your fork) and open your pull request againstmaster. - Page format: Create new pages as
.mdxfiles underdocs/. TheDocs Style / Conformancecheck lints only the.mdxfiles underdocs/that your pull request changes, and orphan detection inscripts/validate-docs-structure.jsonly scans.mdxfiles, so a page saved as.mdskips both checks. - Snippets and excluded files: Files in
docs/snippets/and files listed indocs/.mintignoreare not published pages, so page-level lint rules do not apply to them.
Before Submitting
- Run the linter and fix all errors
With no arguments, the linter checks the
.mdxfiles your branch changes relative tomaster. - Add redirects for any removed or moved pages
- Verify links work — broken links block deployment
- Preview locally with
mintlify devto check rendering - Check frontmatter — every page needs
titleanddescription - Title case — all headings and page titles use title case