# Contribute to Knative

This is the starting point for becoming a contributor - improving code, improving docs, giving talks, etc.
Here are a few ways to get involved.

## Prerequisites

If you want to contribute to Knative, you must do the following:

- Before you can make a contribution, you must fill out the [Google Contributor License Agreement (CLA)](https://cla.developers.google.com/) using the same email address you used to register for Github.
For more information, see [Contributor license agreements](https://github.com/knative/community/blob/main/CONTRIBUTING.md#contributor-license-agreements).

- Read the [Knative contributor guide](https://github.com/knative/community/blob/main/CONTRIBUTING.md).

- Read the [Code of conduct](https://github.com/knative/community/blob/main/CODE-OF-CONDUCT.md).

For more information about how the Knative community is run, see [About the Knative community](about.md).

## Contribute to the code

Knative is a diverse, open, and inclusive community.
Development takes place in the [Knative org on GitHub](https://github.com/knative).

Your own path to becoming a Knative contributor can begin in any of the
following components, look for GitHub issues marked with the good first issue label.

- **Knative Serving:**

    - For how to get started contributing, see the [Serving development workflow](https://github.com/knative/serving/blob/main/DEVELOPMENT.md).
    - For good starter issues, see [Serving issues](https://github.com/knative/serving/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22).

- **Knative Eventing:**
    - For how to get started contributing, see the [Eventing development workflow](https://github.com/knative/eventing/blob/main/DEVELOPMENT.md).
    - For good starter issues, see [Eventing issues](https://github.com/knative/eventing/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Akind%2Fgood-first-issue).

- **Knative Client (kn):**

    - For how to get started contributing, see the [Client development workflow](https://github.com/knative/client/blob/main/docs/DEVELOPMENT.md).
    - For good starter issues, see [Client issues](https://github.com/knative/client/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Akind%2Fgood-first-issue).

- **Documentation:**

    - For how to get started contributing, see the [Docs contributor guide](https://github.com/knative/docs/blob/main/contribute-to-docs/README.md#knative-docs-contributor-guide).
    - For good starter issues, see [Documentation issues](https://github.com/knative/docs/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Akind%2Fgood-first-issue).

## Contribute code samples to the community

Do you have a Knative code sample that demonstrates a use-case or product integration that will help someone learn about Knative?

Beyond the official documentation there are endless possibilities for combining tools, platforms, languages, and products. By submitting a tutorial you can share your experience and help others who are solving similar problems.

Community tutorials are stored in Markdown files under the
[`code-samples/community`](https://github.com/knative/docs/tree/main/code-samples/community).
These documents are contributed, reviewed, and maintained by the community.

Submit a Pull Request to the community sample directory under the Knative component folder that aligns with your document. For example, Knative Serving samples are under the serving folder. A reviewer will be assigned to review your submission. They’ll work with you to ensure that your submission is clear, correct, and meets the style guide, but it helps if you follow it as you write your tutorial.

- [Contribute code samples](https://github.com/knative/docs/tree/main/code-samples/community):
Share your samples with the community.

- [Link existing code samples](../samples/README.md#external-code-samples):
Link to your Knative samples that live on another site.


## Learn and connect

Using or want to use Knative? Have any questions? Find out more here:

- [Knative users group](https://groups.google.com/forum/#!forum/knative-users):
Discussion and help from your fellow users.

- [Knative developers group](https://groups.google.com/forum/#!forum/knative-dev)
Discussion and help from Knative developers.

- [Knative Slack](https://slack.knative.dev):
Ping @serving-help or @eventing-help if you run into issues using Knative Serving
or Eventing and chat with other project developers. See also the [Knative Slack guidelines](https://github.com/knative/community/blob/main/SLACK-GUIDELINES.md).

- [Twitter](https://twitter.com/KnativeProject): Follow us on Twitter to get the latest news!

- [Stack Overflow questions](https://stackoverflow.com/questions/tagged/*knative*):
Knative tagged questions and curated answers.

## Community Meetup

This virtual event is designed for end users, a space for our community to meet,
get to know each other, and learn about uses and applications of Knative.

Catch up with past community meetups on our [YouTube channel](https://www.youtube.com/playlist?list=PLQjzPfIiEQLLyCyLBKLlwDLfE_A-P7nyg).

Stay tuned for new events by subscribing to the
[calendar](https://calendar.google.com/calendar/embed?src=knative.team_9q83bg07qs5b9rrslp5jor4l6s%40group.calendar.google.com&ctz=America%2FLos_Angeles) ([iCal export file](https://calendar.google.com/calendar/ical/knative.team_9q83bg07qs5b9rrslp5jor4l6s%40group.calendar.google.com/public/basic.ics))
and following us on [Twitter](https://twitter.com/KnativeProject).

## More ways to get involved

Even if there’s not an issue opened for it, we can always use more testing throughout the platform. Similarly, we can always use more docs, richer docs, insightful docs. Or maybe a cool blog post? And if you’re a web developer, we could use your help in spiffing up our public-facing web site.

[Bug reports](https://github.com/knative/serving/issues/new) and friction logs
from new developers are especially welcome.
