Write clear, helpful documentation that serves all Akash users.
This guide covers how to contribute to Akash documentation, including style guidelines, structure, and best practices.
Why Documentation Matters
Good documentation:
- Reduces support burden - Fewer questions in Discord
- Improves onboarding - New users get started faster
- Builds trust - Professional docs signal project quality
- Enables growth - Users can self-serve and scale
Documentation is code - Treat it with the same care and rigor.
Getting Started
Documentation Repository
All documentation lives at github.com/akash-network/website
Structure:
src/content/Docs/├── getting-started/ # New user guides├── for-developers/ # Developer documentation│ ├── deployment/ # Deployment methods│ ├── contributing/ # Contributing guides│ └── ...├── for-providers/ # Provider documentation├── for-node-operators/ # Validator/node docs└── learn/ # Educational contentSetup
# Fork and clonegit clone https://github.com/YOUR-USERNAME/website.gitcd website
# Install dependenciesnpm install
# Run dev servernpm run dev
# Visit http://localhost:4321Finding Documentation to Improve
Where to Start
-
Browse GitHub Issues
- Look for
documentationlabel - Check
good first issuefor beginners
- Look for
-
Read the docs as a new user
- Follow tutorials
- Try examples
- Note what’s confusing
-
Listen to community questions
- Check Discord #general and #support
- Frequent questions = missing docs
-
Review existing content
- Fix typos
- Update outdated information
- Improve clarity
Documentation Types
1. Tutorials
Purpose: Teach a specific task step-by-step
Structure:
# Task Title
Brief introduction to what they'll learn.
## Prerequisites- List what they need before starting
## Step 1: First ActionClear instructions with commands
## Step 2: Next ActionContinue with next logical step
## VerifyHow to confirm it worked
## Next StepsWhere to go from hereExample: CLI Installation Guide
2. How-To Guides
Purpose: Solve a specific problem
Structure:
# How to [Do Something]
Problem statement and use case.
## Quick SolutionTL;DR for experienced users
## Detailed Steps1. Step one2. Step two3. Step three
## TroubleshootingCommon issues and solutions
## RelatedLinks to related guidesExample: Update a Deployment
3. Reference Documentation
Purpose: Comprehensive technical details
Structure:
# [Component] Reference
Overview and purpose.
## API / CommandsComplete list with syntax
## ParametersAll options explained
## ExamplesCode samples
## Error HandlingCommon errors and solutionsExample: CLI Commands Reference
4. Explanations
Purpose: Explain concepts and architecture
Structure:
# Understanding [Concept]
What is it and why it matters.
## How It WorksTechnical explanation
## Use CasesWhen to use it
## Best PracticesRecommended approaches
## Learn MoreFurther readingExample: Core Concepts
Writing Style
Voice and Tone
Use:
- Active voice - “The provider accepts bids” not “Bids are accepted”
- Second person - “You deploy” not “Users deploy” or “One deploys”
- Present tense - “The CLI creates” not “The CLI will create”
- Direct language - “Run this command” not “You might want to consider running”
Examples:
**Good: "Deploy your application using the CLI"**Bad: "Applications can be deployed by users via the CLI"
**Good: "Create a deployment with this command"**Bad: "A deployment may be created using the following command"Clarity
Be specific:
**Vague: "Install the required dependencies"**Specific: "Install Go 1.25.0 or later"
**Vague: "Configure your environment"**Specific: "Set the AKASH_NODE environment variable"Remove unnecessary words:
**Wordy: "In order to create a deployment, you will need to..."**Concise: "To create a deployment..."
**Wordy: "There are three different methods available for..."**Concise: "Three methods for..."Technical Accuracy
- Test all commands - Every command must work
- Verify code examples - All code must compile/run
- Keep versions current - Update version numbers
- Link to source - Reference actual code when possible
Formatting
Headings
# H1: Page Title (only one per page)## H2: Main Sections### H3: Subsections#### H4: Minor Sections (use sparingly)Good heading structure:
# Deploy with CLI
## Prerequisites
## Installation
### macOS
### Linux
### Windows
## Your First Deployment
### Create SDL File
### Deploy
## Next StepsCode Blocks
Always specify language:
```bashprovider-services tx deployment create deploy.yaml```
```typescriptconst sdk = createChainNodeSDK({ rpcEndpoint: "https://rpc.akashnet.net:443"})```
```yamlversion: "2.0"services: web: image: nginx:1.25.3```Inline Code
Use backticks for:
- Commands:
provider-services - File names:
deploy.yaml - Variable names:
AKASH_NODE - Package names:
@akashnetwork/chain-sdk
Run `provider-services version` to check your installation.Lists
Ordered lists for sequences:
1. Install the CLI2. Configure your wallet3. Create deploymentUnordered lists for non-sequential items:
- CPU: 0.5 cores- Memory: 512Mi- Storage: 1GiLinks
Internal links:
See the [CLI Guide](/docs/developers/deployment/cli).External links:
Install [Node.js](https://nodejs.org/) version 22 or later.Anchor links:
Jump to [Installation](#installation).Tables
| Feature | CLI | Console | SDK ||---------|-----|---------|-----|| Easy to use | | **| **|| Automation | **| **| **|| GUI | **| **| **|Admonitions
Use for important information:
**Note:** This feature requires provider-services v0.10.0 or later.
**Warning:** This command will close your deployment and refund remaining escrow.
**Tip:** Use `--dry-run` to preview changes without applying them.
**Important:** Back up your wallet before proceeding.Code Examples
Requirements
All code examples must:
- Work - Actually run without errors
- Be complete - Include all necessary imports/setup
- Be realistic - Show real-world usage
- Be tested - Verify before submitting
Good Example Structure
Here's how to query deployments:
```typescriptimport { createChainNodeSDK } from "@akashnetwork/chain-sdk"
async function queryDeployments(owner: string) { const sdk = createChainNodeSDK({ rpcEndpoint: "https://rpc.akashnet.net:443" })
const deployments = await sdk.query.deployment.deployments({ filters: { owner } })
return deployments}
// Usageconst myDeployments = await queryDeployments("akash1...")console.log(`Found ${myDeployments.length} deployments`)```
This returns all deployments for the specified owner address.Multi-Language Examples
Use tabs for multiple languages:
```go// Go exampleclient, err := discovery.DiscoverClient(ctx)if err != nil { return err}```
```typescript// TypeScript exampleconst sdk = createChainNodeSDK({ rpcEndpoint: "https://rpc.akashnet.net:443"})```Structure Guidelines
Page Frontmatter
---categories: ["Developers", "Deployment"]tags: ["CLI", "Installation", "Setup"]weight: 1title: "Installing the Akash CLI"linkTitle: "Installation"description: "Install and configure the Akash CLI for deployments"---- categories: Breadcrumb path (max 3 levels)
- tags: Search keywords
- weight: Sidebar ordering (lower = higher)
- title: Full page title
- linkTitle: Shorter sidebar title
- description: SEO and preview text
Page Structure
---frontmatter...---
# Page Title
**Bold lead paragraph** - Brief overview of what this page covers.
---
## First Major Section
Content...
### Subsection
More specific content...
---
## Second Major Section
Content...
---
## Next Steps
- [Related Page 1](/link1)- [Related Page 2](/link2)
---
**Questions?** Join [Discord](https://discord.akash.network)!Navigation
Every page should:
- Start with context - What will they learn?
- End with next steps - Where to go from here?
- Link related content - Connect the docs
Good navigation example:
## Next Steps
- **[SDL Reference](/docs/developers/deployment/akash-sdl)** - Learn SDL syntax- **[Examples Library](/docs/developers/deployment/akash-sdl/examples-library)** - 290+ deployment examples- **[Best Practices](/docs/developers/deployment/akash-sdl/best-practices)** - Production deployment tipsCommon Documentation Issues
Issue: Outdated Information
Problem: Commands or APIs have changed
Solution:
- Check current source code
- Test all commands
- Update version numbers
- Add “Last Updated” dates if needed
Issue: Missing Prerequisites
Problem: Users can’t follow the guide
Solution:
## Prerequisites
Before you begin, ensure you have:- Go 1.25.0 or later installed- An Akash wallet with at least 5 AKT- Basic command-line knowledge
**Not set up yet?** See [Development Environment](/docs/developers/contributing/development-environment)Issue: Wall of Text
Problem: Dense paragraphs are hard to read
Solution:
- Break into smaller paragraphs (3-4 lines max)
- Use headings to chunk content
- Add lists and code blocks
- Include visual breaks (horizontal rules)
Issue: No Examples
Problem: Conceptual explanation without practical application
Solution: Always include working examples:
## TheoryDeployments are created from SDL files...
## ExampleHere's a simple deployment:```yamlversion: "2.0"...Use it like this:
provider-services tx deployment create deploy.yaml---
## Checklist for Documentation PRs
Before submitting:
- [ ] **Tested all commands** - Every command works- [ ] **Verified code examples** - All code runs- [ ] **Checked links** - No broken links- [ ] **Proper formatting** - Code blocks have languages- [ ] **Clear writing** - Active voice, concise- [ ] **Logical structure** - Good headings and flow- [ ] **Next steps included** - Users know where to go- [ ] **Spell-checked** - No typos- [ ] **Frontmatter correct** - Categories, tags, weight set
---
## Resources
### Style Guides
- **[Google Developer Documentation Style Guide](https://developers.google.com/style)** - Industry standard- **[Write the Docs](https://www.writethedocs.org/guide/)** - Community resources- **[Stripe Documentation](https://stripe.com/docs)** - Excellence example
### Tools
- **[Grammarly](https://grammarly.com/)** - Grammar and clarity- **[Hemingway Editor](http://www.hemingwayapp.com/)** - Readability- **[markdownlint](https://github.com/DavidAnson/markdownlint)** - Markdown linting
---
## Getting Help
**Before writing:**- Check existing docs for similar content- Ask in Discord #developers if unsure- Review recent documentation PRs
**During writing:**- Ask for feedback early (draft PRs welcome)- Test with someone unfamiliar with the topic- Iterate based on feedback
**After submission:**- Respond to review feedback- Be open to suggestions- Learn from the review process
---
## Recognition
Documentation contributors are valued:- Acknowledged in release notes- Featured in blog posts for major contributions- Build portfolio with technical writing samples- Help thousands of users succeed
**Thank you for improving Akash documentation!**
---
**Questions?** Ask in [Discord #developers](https://discord.akash.network)!