Contributions to Bedrud are welcome. This guide covers the process for submitting changes.
Note: The canonical contributing guide is at the repository root: CONTRIBUTING.md. This page is archived for reference only.
Getting Started
- Fork the repository
- Clone your fork
- Create a feature branch from
main - Make your changes
- Submit a pull request
Prerequisites
- Go 1.22+
- Bun (for web frontend)
- Rust (for desktop app)
- Make
- Git
Development Setup
# After forking on GitHub, clone your fork
git clone https://github.com/<your-username>/bedrud.git
cd bedrud
make init
make devSee the Development Workflow for detailed setup instructions.
Project Structure
| Directory | Language | Description |
|---|---|---|
server/ | Go | Backend API and embedded LiveKit |
apps/web/ | TypeScript/React | Web frontend |
apps/desktop/ | Rust + Slint | Desktop app |
apps/android/ | Kotlin | Android app |
apps/ios/ | Swift | iOS app |
agents/ | Python | Bot agents |
packages/ | TypeScript | Shared type definitions |
tools/cli/ | Python | Deployment CLI |
docs/ | Markdown | Documentation |
Code Style
| Language | Standard |
|---|---|
| Go | gofmt |
| TypeScript/React | Biome |
| Kotlin | Android Studio defaults |
| Swift | Xcode defaults |
| Python | ruff |
Pull Request Process
- Branch naming:
feature/description,fix/description, ordocs/description - Commit messages:
<action> <what> for <why>(e.g.,add user model for auth feature,fix login redirect for expired sessions) - CI checks: All GitHub Actions checks must pass
- Description: Include what changed and why
CI Checks
Every PR runs these checks automatically:
| Check | What it validates |
|---|---|
| Server | go vet, build, tests |
| Web | TypeScript type check, build |
| Android | Lint, unit tests |
| iOS | Build, test (simulator) |
Reporting Issues
File issues on GitHub Issues with:
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, browser, app version)
Documentation
Documentation lives in docs/ and is built with MkDocs Material.
Local Preview
pip install mkdocs-material
mkdocs serveThen open http://localhost:8000 in your browser.
Structure
Documentation pages are organized by topic. The navigation is defined in mkdocs.yml at the project root.
License
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.