Ready to contribute? Here’s how to get started!
This guide walks you through making your first contribution to Akash Network, from finding an issue to submitting your pull request.
Step 1: Choose What to Work On
Find an Issue
Core Repositories:
- Support Repository - All node and provider issues
- Console Repository - Web UI issues
- Website Repository - Documentation issues
Look for:
- Issues labeled
good first issue- Beginner-friendly tasks - Issues labeled
ready-for-community-dev- Ready for community contributions - Issues labeled
help wanted- Core team welcomes help - Issues labeled
documentation- Doc improvements
Types of Contributions
1. Documentation Improvements
Perfect for first contributions!
- Fix typos and broken links
- Clarify confusing sections
- Add missing information
- Improve code examples
- Update outdated content
Where to contribute:
- Website Issues
- Browse existing docs and spot improvements
2. Code Contributions
Node & Provider:
- Bug fixes
- New features
- Performance improvements
- Test coverage
Console:
- UI improvements
- New features
- Bug fixes
- Accessibility improvements
3. Deployment Examples
Awesome Akash:
- Add new SDL examples
- Improve existing examples
- Test and verify examples
- Document deployment steps
Step 2: Set Up Your Environment
For Documentation Contributions
Documentation contributions are perfect for first-timers!
-
Set up the website repository:
- Follow the Console & Website Setup Guide
- Quick version:
Terminal window git clone https://github.com/YOUR-USERNAME/website.gitcd websitenpm installnpm run dev -
Create a branch:
Terminal window git checkout -b docs/your-improvement-name
For Code Contributions (Node/Provider)
Node and provider development requires a complete Kubernetes environment. Follow these steps:
-
Fork the repositories:
-
Clone both repositories:
Terminal window mkdir -p ~/go/src/github.com/akash-networkcd ~/go/src/github.com/akash-networkgit clone https://github.com/YOUR-USERNAME/node.gitgit clone https://github.com/YOUR-USERNAME/provider.git -
Install all development dependencies:
Terminal window # Automated installer for all required tools./provider/script/install_dev_dependencies.sh -
Set up local Kubernetes cluster:
Terminal window cd provider/_run/kube# Create and provision cluster (may take several minutes)make kube-cluster-setup# If timeout occurs, use extended timeout:KUBE_ROLLOUT_TIMEOUT=300 make kube-cluster-setup -
Create a branch:
Terminal window cd ~/go/src/github.com/akash-network/node # or providergit checkout -b feature/your-feature-name
Important: Node and provider development requires a complete Kubernetes environment and is significantly more complex than other contributions. New contributors should start with documentation or Console contributions first. See the complete Development Environment Guide for detailed setup instructions.
For Console Contributions
Console is a great place to start with React/TypeScript contributions!
-
Set up the console repository:
- Follow the Console & Website Setup Guide
- Quick version:
Terminal window git clone https://github.com/YOUR-USERNAME/console.gitcd consolenpm installnpm run dev -
Create a branch:
Terminal window git checkout -b feature/your-feature-name
Step 3: Make Your Changes
Best Practices
- Start small - Your first PR doesn’t need to be big
- Follow existing patterns - Look at how similar code is written
- Test your changes - Verify everything works
- Keep it focused - One issue per PR
- Document your changes - Add comments for complex logic
For Documentation Changes
- Edit the relevant
.mdor.mdxfile insrc/content/Docs/ - Preview your changes with
npm run dev - Check formatting with
npm run build
Tips:
- Use clear, concise language
- Add code examples where helpful
- Include links to related docs
- Test all code examples
For Code Changes
-
Write code following project conventions
-
Run tests:
Terminal window make test -
Run linter:
Terminal window make lint -
Verify build:
Terminal window make build
See: Code Conventions
Step 4: Commit Your Changes
Commit Message Format
Use conventional commits:
<type>: <short summary>
<optional body>Types:
feat:- New featurefix:- Bug fixdocs:- Documentation changeschore:- Maintenance taskstest:- Test updatesrefactor:- Code refactoringstyle:- Formatting changes
Examples:
# Documentation fixgit commit -m "docs: fix typo in CLI installation guide"
# Feature additiongit commit -m "feat: add GPU filtering to provider bidengine"
# Bug fix with descriptiongit commit -m "fix: resolve escrow balance calculation error
The escrow balance was not accounting for fees correctly,causing incorrect balance displays in the console."Sign Your Commits
All commits must be signed-off:
git commit -s -m "docs: update provider setup guide"This adds a Signed-off-by: line to your commit, certifying you have the right to submit the contribution under the project’s license.
Configure your git identity:
git config --global user.name "Your Name"Step 5: Push and Create a Pull Request
Push Your Changes
git push origin your-branch-nameCreate the Pull Request
-
Go to your fork on GitHub
-
Click “Compare & pull request”
-
Fill out the PR template:
Title: Use conventional commit format
docs: improve CLI installation guideDescription: Explain what and why
## Changes- Added troubleshooting section for macOS- Fixed broken links to provider docs- Clarified version requirements## WhyUsers were getting stuck on installation due to missing macOS instructions.Fixes #123 -
Link related issues:
Fixes #123- Closes issue #123Relates to #456- References issue #456
-
Click “Create pull request”
Step 6: Respond to Feedback
Review Process
- Automated checks run - CI, linting, tests
- Maintainers review - May take a few days
- Changes requested - Address feedback
- Approval - PR gets merged!
Addressing Feedback
# Make requested changes# ... edit files ...
# Commit changesgit add .git commit -s -m "fix: address review feedback"
# Push to update PRgit push origin your-branch-nameBe Patient and Professional
- Reviews may take time - maintainers are volunteers
- Respond to all comments
- Ask for clarification if needed
- Don’t take criticism personally
- Learn from the feedback
Common First Contribution Ideas
Documentation
- Fix typos in any documentation page
- Add missing links between related docs
- Improve clarity in confusing sections
- Add code examples to API references
- Update screenshots or outdated information
Code
- Fix a
good first issuebug - Add test coverage to existing code
- Improve error messages
- Add logging for debugging
- Update dependencies
Deployment Examples
- Add your SDL to Awesome Akash
- Test and verify existing examples
- Add README documentation
- Create category-specific examples
Getting Help
Before Asking
- Search existing issues - Your question might be answered
- Check documentation - Read relevant guides
- Review closed PRs - See how similar changes were done
Where to Ask
Discord:
- #developers - Code and technical questions
- #general - General questions
- #providers - Provider-specific questions
GitHub:
- Comment on the issue you’re working on
- Open a Discussion for ideas
- Ask in your PR if you need guidance
Best Practices:
- Be specific - Provide context, logs, errors
- Show what you’ve tried
- Be respectful of people’s time
- Follow up if you solve it yourself
After Your First Contribution
Keep Contributing!
- Look for more issues to work on
- Help review others’ PRs - Learn from their code
- Share your experience - Write about your contribution
- Join community calls - Get to know the team
Level Up
As you gain experience:
- Tackle more complex issues
- Propose new features
- Become a regular reviewer
- Help onboard new contributors
- Join a Special Interest Group (SIG)
Next Steps
Ready for more?
- Code Conventions - Learn coding standards
- Development Environment - Deep dive into setup
- Pull Request Process - Detailed PR guide
Recognition
Your contributions matter:
- All contributors acknowledged in release notes
- Active contributors join the community leaders
- Outstanding contributors may join core teams
- Build your portfolio and reputation
Thank you for contributing to Akash Network!
Questions? Join Discord and ask in #developers!