# Contribute to the open source platform

This section is for contributing to the Fuchsia open source platform and
operating system.

You can explore the Fuchsia source code on
[Google Open Source Code Search](https://cs.fuchsia.dev).

## Get started

If you're new to Fuchsia, complete [**Get started with Fuchsia**][get-started]
first.

## Basic workflows

 - [Download the Fuchsia source code](/docs/get-started/get_fuchsia_source.md)
 - [fx workflows](build/fx.md)
 - [Developing with Fuchsia packages](/docs/development/build/package_update.md)
 - [Fuchsia build system](/docs/development/build/build_system/fuchsia_build_system_overview.md)
 - [Workflow tips and questions](source_code/workflow_tips_and_faq.md)
 - [Testing: Questions and Answers](testing/faq.md)

## Languages

 - [Language usage in Fuchsia](languages/README.md)
 - [C/C++](languages/c-cpp/README.md)
 - [FIDL](languages/fidl/README.md)
 - [Go](languages/go/README.md)
 - [Rust](languages/rust/README.md)
 - [Python](languages/python/README.md)
 - [Guide to bringing a new language to Fuchsia](languages/new/README.md)

## API

 - [API Development](/docs/development/api/README.md)
 - [Fuchsia API Council Charter](/docs/contribute/governance/api_council.md)
 - [Zircon System Interface Rubric](/docs/development/api/system.md)
 - [FIDL API Rubric][fidl-api]
 - [FIDL Style Guide][fidl-style]
 - [C Library Readability Rubric](/docs/development/api/c.md)
 - [Developer tool guidelines](/docs/development/api/tools.md)

## Testing

 - [Debugging workflow](/docs/development/debugging/debugging.md)
 - [Fuzz testing with LibFuzzer](/docs/development/testing/fuzzing/overview.md)
 - [Test components](/docs/development/testing/components/test_component.md)
 - [Test environments](/docs/contribute/testing/environments.md)
 - [Testability rubrics](/docs/development/testing/testability_rubric.md)
 - [Test flake policy](/docs/development/testing/test_flake_policy.md)
 - [Host-target interaction tests](/docs/development/testing/host_target_interaction_tests.md)
 - [Testing for Flakiness in CQ](/docs/development/testing/testing_for_flakiness_in_cq.md)
 - [Testing a USB Device](/docs/development/testing/testing_usb_device.md)

## Tracing

 - [Fuchsia tracing system](/docs/concepts/kernel/tracing-system.md)
 - [Tracing guides](/docs/development/tracing/README.md)
 - [Tracing for input events](/docs/development/ui-input/tracing.md)

## Internationalization

 - [Internationalization, localization and input methods](internationalization/README.md)

<!-- Reference links -->

[get-started]: /docs/get-started/README.md
[fidl-style]: /docs/development/languages/fidl/guides/style.md
[fidl-api]: /docs/development/api/fidl.md
