Welcome Contributors!
Thank you for considering contributing to Aya - an open-source community platform for knowledge sharing, collaboration, and decentralized networking. Aya is built with modern technologies:- Frontend: TanStack Start (React) with Deno runtime
- Backend: Go with hexagonal architecture
- Database: PostgreSQL with multi-locale support
- Infrastructure: Docker Compose, Make-based workflows
Ways to Contribute
We welcome all types of contributions:Report Bugs
Found an issue? Open a GitHub issue with reproduction steps and environment details.
Suggest Features
Have ideas for improvements? Start a discussion to propose new features or enhancements.
Fix Issues
Browse open issues labeled
good first issue or help wanted to get started.Improve Documentation
Help make Aya more accessible by improving docs, adding examples, or fixing typos.
Write Tests
Increase code coverage by adding unit tests, integration tests, or snapshot tests.
Optimize Performance
Identify bottlenecks and submit performance improvements.
Getting Started
Read the Code of Conduct
All contributors must follow our Code of Conduct. We’re committed to providing a welcoming and inclusive environment.
Understand the Workflow
Review our Development Workflow to understand how changes are made, tested, and submitted.
Follow Coding Standards
Read the Code Style and Testing guidelines before writing code.
Submit a Pull Request
Follow our Pull Request Guidelines to submit your contribution for review.
Technical Requirements
Before contributing, ensure you have:- Git - Version control
- Make - Build automation
- Docker & Docker Compose - Containerized development
- Deno - JavaScript/TypeScript runtime (for frontend)
- Go 1.22+ - Backend language
- Node.js 20+ - For npm dependencies (optional)
The project uses Make as the primary build tool. All common tasks have Makefile targets - avoid replacing these with custom scripts.
Quality Standards
All contributions must meet these standards: ✅ Code Quality- Passes all linters (
deno lint,golangci-lint) - Follows project coding conventions
- Includes proper error handling
- Uses explicit null/undefined checks (no truthy/falsy)
- Includes tests for new functionality
- All tests pass locally
- Maintains or improves code coverage
- Code is self-documenting with clear naming
- Complex logic includes explanatory comments
- Public APIs have usage examples
- Commits follow Conventional Commits
- Descriptive commit messages explain “why”, not “what”
- No merge commits (rebase workflow)
Community
Join the Aya community:- GitHub Discussions - Ask questions, share ideas
- Issues - Report bugs, request features
- Email - [email protected] for private inquiries
Recognition
We value every contribution! Contributors are:- Listed in the project’s contributors page
- Acknowledged in release notes for significant contributions
- Eligible to become maintainers based on consistent, quality contributions
Next Steps
Code of Conduct
Review our community guidelines and expectations
Development Workflow
Learn the Git workflow and development process
Code Style Guide
Understand our coding standards and conventions
Testing Guidelines
Learn how to write and run tests