diff --git a/README.md b/README.md index 168406adc..b1f0a9e2b 100644 --- a/README.md +++ b/README.md @@ -176,3 +176,4 @@ A2UI is an **Apache 2.0** licensed project. We believe the future of UI is agent and we want to work with you to help build it. See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to get started. +New here? Start with the [Contributor Onboarding](docs/guides/onboarding.md) guide. diff --git a/docs/guides/onboarding.md b/docs/guides/onboarding.md new file mode 100644 index 000000000..ae8f7ade3 --- /dev/null +++ b/docs/guides/onboarding.md @@ -0,0 +1,72 @@ +# Contributor Onboarding + +This guide helps first-time contributors, students, and hackathon teams get from zero to their first PR. + +## 1. Pick a path (15-30 minutes) + +- **Run the demo**: Follow the [Quickstart](../quickstart.md) to see A2UI end-to-end. +- **Build a renderer**: Start with [Client Setup](client-setup.md). +- **Build an agent**: See [Agent Development](agent-development.md). +- **Docs-only contribution**: Update guides, fix typos, or add examples (lowest risk). + +## 2. Prerequisites + +- **Node.js** v18+ +- **Python** 3.10+ (only for agent demos) +- **uv** (Python package manager) for agent demos +- **Gemini API key** (only required for agent demos) + +If you only want to contribute docs, you do not need Python or an API key. + +## 3. Fork and clone (fast path) + +```bash +# 1) Fork https://github.com/google/A2UI on GitHub +# 2) Clone your fork +git clone https://github.com//A2UI.git +cd A2UI + +# 3) (Optional) Add upstream for syncing +git remote add upstream https://github.com/google/A2UI.git +``` + +Then follow the [Quickstart](../quickstart.md) for the one-command demo. + +## 4. Find a starter task + +Good places to start: + +- [good first issue](https://github.com/google/A2UI/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) +- [documentation](https://github.com/google/A2UI/issues?q=is%3Aissue+is%3Aopen+label%3Adocumentation) +- [help wanted](https://github.com/google/A2UI/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) + +If you are new, docs issues are the quickest way to get a PR merged. + +## 5. Make a change + +```bash +git checkout -b your-branch-name +# edit files +``` + +- Keep changes small and focused. +- If you touched code, run the relevant tests. +- For docs-only changes, a quick review is usually enough. + +## 6. Open a PR + +Before opening a PR, sign the [Google CLA](https://cla.developers.google.com/about). + +Then open a PR against `main` and include: + +- A short summary of what changed +- A link to the issue (if there is one) +- Any test results (or note "docs-only") + +See [CONTRIBUTING.md](../../CONTRIBUTING.md) for full details. + +## 7. After you open the PR + +- Respond to review comments +- Keep the PR focused; follow-up changes can be new PRs +- If CI fails, push a fix and re-run checks diff --git a/docs/index.md b/docs/index.md index 214fe1423..d6a0f6c50 100644 --- a/docs/index.md +++ b/docs/index.md @@ -89,6 +89,14 @@ and [transports](concepts/transports.md) (A2A, etc.) which communicate A2UI mess [:octicons-arrow-right-24: Learn concepts](concepts/overview.md) +- :material-account-group:{ .lg .middle } **[Contributor Onboarding](guides/onboarding.md)** + + --- + + A short, practical path for first-time contributors, students, and hackathon teams. + + [:octicons-arrow-right-24: Start contributing](guides/onboarding.md) + - :material-code-braces:{ .lg .middle } **[Developer Guides](guides/client-setup.md)** --- diff --git a/mkdocs.yaml b/mkdocs.yaml index 3b076e6d7..5aa8df332 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -49,6 +49,7 @@ nav: - Transports: concepts/transports.md - Client-to-Server Actions: concepts/client_to_server_actions.md - Guides: + - Contributor Onboarding: guides/onboarding.md - Client Setup: guides/client-setup.md - Agent Development: guides/agent-development.md - Renderer Development: guides/renderer-development.md