Contributing to datamitsu
Thank you for your interest in contributing to datamitsu! This project is in alpha stage and welcomes contributions from the community.
datamitsu is in active development. The configuration API is not yet stabilized and may change between versions. Breaking changes are acceptable when they improve correctness, safety, or simplify architecture.
Ways to Contribute
Code Contributions
Contribute to the core datamitsu platform:
- Bug fixes — Help identify and fix issues
- Feature implementations — Work on planned features from GitHub issues
- Performance improvements — Optimize binary downloads, cache handling, etc.
- Platform support — Add support for new OS/architecture combinations
Getting started:
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/yourusername/datamitsu - Create a feature branch:
git checkout -b feat/your-feature - Make your changes and test them
- Submit a pull request with a clear description
Documentation Contributions
Improve the documentation:
- Fix typos and errors — Even small fixes help
- Add examples — Share how you use datamitsu
- Write guides — Help others solve common problems
- Improve clarity — Make complex topics easier to understand
All documentation lives in website/docs/ and uses Docusaurus. See Brand Guidelines for voice and style guidance.
Wrapper Package Creation
Build and share wrapper packages for specific ecosystems:
- Company standards — Create internal tool configurations
- Framework integrations — Provide ready-to-use configs for frameworks
- Language ecosystems — Build opinionated defaults for Go, Rust, TypeScript, etc.
See Creating Wrappers for a complete guide.
Community Support
Help other users:
- Answer questions — On GitHub Discussions or issues
- Share use cases — Blog about how you use datamitsu
- Report bugs — Help us identify and fix problems
- Provide feedback — Share your experience and suggestions
Development Setup
Prerequisites
- Go 1.21 or later
- Node.js 20 or later (for website development)
- pnpm (for website dependencies)
Building from Source
# Clone the repository
git clone https://github.com/datamitsu/datamitsu
cd datamitsu
# Build the binary
go build
# Run tests
go test ./...
Working on Documentation
# Navigate to website directory
cd website
# Install dependencies
pnpm install
# Start development server
pnpm start
# Build for production
pnpm build
The documentation site will be available at http://localhost:3000.
Contribution Guidelines
Code Style
- English-only — All code, comments, and documentation must be in English
- Minimal comments — Code should be self-documenting; add comments only when necessary
- Follow Go conventions — Use
gofmt, follow standard Go idioms - Security-first — All binaries must have SHA-256 hashes; no exceptions
See CLAUDE.md for detailed code commenting guidelines.
Documentation Style
- English-only — No exceptions
- Clear and concise — Avoid jargon; explain technical concepts clearly
- Use examples — Show, don't just tell
- Maintain voice — See Brand Guidelines
Commit Messages
Write clear, descriptive commit messages:
fix: address hash verification bug in binmanager
Add additional validation for empty hash strings before
downloading binaries. Prevents panic when config has
missing hash field.
Fixes #123
Pull Request Process
- Ensure tests pass — Run
go test ./...before submitting - Update documentation — Document new features or API changes
- Keep PRs focused — One feature or fix per PR
- Write clear descriptions — Explain what and why, not just how
- Respond to feedback — Be open to suggestions and changes
Documentation Requirements
All user-facing changes require documentation updates in the same PR.
This includes:
- User-facing features → Update
website/docs/with examples and guides - CLI commands → Update
website/docs/reference/cli-commands.md - Configuration options → Update
website/docs/reference/configuration-api.md - New examples → Add to
website/docs/examples/ - Breaking changes → Document migration path in docs and create blog post in
website/blog/
Documentation is not optional — it is a required deliverable for every user-facing change.
Project Resources
- Repository: github.com/datamitsu/datamitsu
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: datamitsu.com
Code of Conduct
Be respectful, constructive, and professional in all interactions. We aim to create a welcoming environment for contributors of all backgrounds and experience levels.
Questions?
If you have questions about contributing:
- Open a GitHub Discussion
- Check existing GitHub Issues
- Read the documentation
We appreciate your contributions!